Compare commits
399 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68466df4ef | ||
|
|
c111f1ed03 | ||
|
|
8943157bf1 | ||
|
|
c427fafb32 | ||
|
|
2ecb86553d | ||
|
|
3f05dbfdff | ||
|
|
37b15edd6a | ||
|
|
c64c9b6766 | ||
|
|
67b782c542 | ||
|
|
58c0882751 | ||
|
|
d3fb8662b7 | ||
|
|
b441d9ff15 | ||
|
|
ae77537c17 | ||
|
|
8c20ca7ce4 | ||
|
|
655d9214aa | ||
|
|
582cb8d0d1 | ||
|
|
df1459df04 | ||
|
|
29fc6cc717 | ||
|
|
f815ed9db1 | ||
|
|
3c5f5a542a | ||
|
|
8d2478057f | ||
|
|
ff00c812fc | ||
|
|
6129eff668 | ||
|
|
9721c185b5 | ||
|
|
695d5337e8 | ||
|
|
f52cc9517b | ||
|
|
25c42463fa | ||
|
|
87fb1f2650 | ||
|
|
ed0de16ace | ||
|
|
01c4ca39dd | ||
|
|
60ed9f00e7 | ||
|
|
6189eaa50d | ||
|
|
6bb07ca453 | ||
|
|
e4fb30cee9 | ||
|
|
3ed4a1e5a5 | ||
|
|
307240ba9c | ||
|
|
61b7ae2f8d | ||
|
|
6cbd5fba05 | ||
|
|
70eaf019d5 | ||
|
|
f8d77e67ce | ||
|
|
a11cb01daf | ||
|
|
104edfc99a | ||
|
|
4d3d3b6015 | ||
|
|
d2e0df62a8 | ||
|
|
5a03f64ead | ||
|
|
0773d9b243 | ||
|
|
d78fbaef40 | ||
|
|
36ab8289f4 | ||
|
|
48946537c5 | ||
|
|
3f4ec8fe94 | ||
|
|
0542059653 | ||
|
|
8b15ef1838 | ||
|
|
cefe7ce40b | ||
|
|
6bcec58b9e | ||
|
|
86b5645d1d | ||
|
|
b30623ed55 | ||
|
|
8deb073497 | ||
|
|
0c7eb04b99 | ||
|
|
c0d69dee7f | ||
|
|
52853d7b05 | ||
|
|
4b969daf57 | ||
|
|
0225c23d3f | ||
|
|
fcc16cb2f7 | ||
|
|
29c94d78d5 | ||
|
|
3cb78424c9 | ||
|
|
e9c98484b7 | ||
|
|
1b82bb7732 | ||
|
|
94bf3aac87 | ||
|
|
a44b720c88 | ||
|
|
df0819bdd9 | ||
|
|
99c7ed1ce4 | ||
|
|
81488068ea | ||
|
|
2d69c85190 | ||
|
|
14a01026f6 | ||
|
|
8f05ec7d36 | ||
|
|
c8ea38eac9 | ||
|
|
cca4510e42 | ||
|
|
c2afb36dac | ||
|
|
98d098d917 | ||
|
|
897eacf91b | ||
|
|
d25db13ebd | ||
|
|
a4b3c22a05 | ||
|
|
52b1ba1991 | ||
|
|
06cfa30851 | ||
|
|
1e3a6b12bf | ||
|
|
abac4a3a57 | ||
|
|
92c9422815 | ||
|
|
dd4f998ca6 | ||
|
|
fc6c72bdb5 | ||
|
|
689b6eeb57 | ||
|
|
587151b894 | ||
|
|
5c3cdc496d | ||
|
|
100a824746 | ||
|
|
45896c4e4e | ||
|
|
999235a9b4 | ||
|
|
8a87bce2c5 | ||
|
|
778325213b | ||
|
|
1fd8e0e99f | ||
|
|
2c5fffcf15 | ||
|
|
f106255eaf | ||
|
|
b84f42ee37 | ||
|
|
2f69ce8695 | ||
|
|
17ed1e5e04 | ||
|
|
dd9c7f1961 | ||
|
|
86d5e04b25 | ||
|
|
0c11c58506 | ||
|
|
432a0f74fa | ||
|
|
765f04a748 | ||
|
|
2a2366dc3e | ||
|
|
2aba7423cc | ||
|
|
80f05885f3 | ||
|
|
bbf0939e3b | ||
|
|
b4a60dc4f5 | ||
|
|
8c467adaee | ||
|
|
8d4f72ee58 | ||
|
|
f84b885537 | ||
|
|
036d4ae9ca | ||
|
|
96e8c5a7e9 | ||
|
|
5c395830de | ||
|
|
ec18845107 | ||
|
|
a4f684e1e0 | ||
|
|
48dde3e4b5 | ||
|
|
39cf8c83ea | ||
|
|
eee0ff1d62 | ||
|
|
9b5bcde865 | ||
|
|
c7f899e701 | ||
|
|
3315a77ea4 | ||
|
|
40d10bd12c | ||
|
|
ae28427451 | ||
|
|
c368ce6ca7 | ||
|
|
3429b7c4fc | ||
|
|
d374ecf08c | ||
|
|
647cd4c9bb | ||
|
|
9b4dce8e08 | ||
|
|
75b2eb1b8c | ||
|
|
2461e67dd8 | ||
|
|
b2f26ed90b | ||
|
|
7e5f2557b3 | ||
|
|
3996323d5e | ||
|
|
3a5c94bb9b | ||
|
|
3e3ce5c4c5 | ||
|
|
30e5c392f9 | ||
|
|
b3a4f43e3f | ||
|
|
8b304cecab | ||
|
|
a43f5007fa | ||
|
|
b7a66a8039 | ||
|
|
e54ca02b01 | ||
|
|
c2fc82f527 | ||
|
|
f7d5ec89ec | ||
|
|
6a9b68288b | ||
|
|
01a88fc2ad | ||
|
|
30d1170514 | ||
|
|
c63c2a0ed5 | ||
|
|
4bb4400d11 | ||
|
|
04228633a3 | ||
|
|
be09da03b2 | ||
|
|
6157ff7930 | ||
|
|
e5e7bc9f1b | ||
|
|
13f20dacdc | ||
|
|
6152a48854 | ||
|
|
acd9b9df60 | ||
|
|
f70c77733f | ||
|
|
af8facfa21 | ||
|
|
245fdc1a8a | ||
|
|
a3314654bf | ||
|
|
78656d8531 | ||
|
|
01c6abf2cc | ||
|
|
12da32e819 | ||
|
|
2a41559960 | ||
|
|
b2b894f8e3 | ||
|
|
021daab6ed | ||
|
|
b4a31248d4 | ||
|
|
aa3bcdc24d | ||
|
|
ea24261f37 | ||
|
|
1022139e5a | ||
|
|
d8980ed969 | ||
|
|
f2487bbeab | ||
|
|
c54c35552a | ||
|
|
15daff9e7a | ||
|
|
0e42857291 | ||
|
|
9230dd8aeb | ||
|
|
392612e94d | ||
|
|
efc1eac213 | ||
|
|
7244057876 | ||
|
|
3f90937260 | ||
|
|
d17b8f8e2f | ||
|
|
c602626848 | ||
|
|
6e83c25256 | ||
|
|
7dc69ea60f | ||
|
|
bea9a8117d | ||
|
|
a5d16d92ba | ||
|
|
f0b5ff261d | ||
|
|
3c768af62d | ||
|
|
e70f384822 | ||
|
|
1ac9b43dfd | ||
|
|
d6ff7ea41d | ||
|
|
f90cc6b641 | ||
|
|
ad7be32fcf | ||
|
|
2e89a53635 | ||
|
|
dee6be28b8 | ||
|
|
0a2a344922 | ||
|
|
7236cf0b02 | ||
|
|
fc0ddd1220 | ||
|
|
198d31fd5a | ||
|
|
0d36bb07b6 | ||
|
|
36b1290a80 | ||
|
|
47683c0cce | ||
|
|
5c5cd10211 | ||
|
|
82c403b783 | ||
|
|
df54c897fa | ||
|
|
7edebf5b13 | ||
|
|
5a6db66f2a | ||
|
|
b0ad44776f | ||
|
|
ea232a30d2 | ||
|
|
d59c1da943 | ||
|
|
9b7f5b7a59 | ||
|
|
fd51836a75 | ||
|
|
46a13bac3d | ||
|
|
1c222b0e07 | ||
|
|
3287c7ff15 | ||
|
|
c7adcde7f8 | ||
|
|
babadc2eb5 | ||
|
|
31b7c871e4 | ||
|
|
2c1b23d26f | ||
|
|
ca7fdf41eb | ||
|
|
87872a838c | ||
|
|
85405f943b | ||
|
|
d75b96ae50 | ||
|
|
4bb33b8853 | ||
|
|
cf99aa123a | ||
|
|
a2f88de5a1 | ||
|
|
90ec708df2 | ||
|
|
c978dcaba0 | ||
|
|
631bab4216 | ||
|
|
6f14962a72 | ||
|
|
eb99efb672 | ||
|
|
c538700858 | ||
|
|
24091333d5 | ||
|
|
bdc44b1393 | ||
|
|
10b6703c24 | ||
|
|
a432086f1e | ||
|
|
66e3b12776 | ||
|
|
5172406131 | ||
|
|
2b0ee68379 | ||
|
|
130b5c5978 | ||
|
|
a7e94808e5 | ||
|
|
6b10278d49 | ||
|
|
ea44fcb4cb | ||
|
|
331c330254 | ||
|
|
caecd6e934 | ||
|
|
9ccbca5391 | ||
|
|
f9200294f8 | ||
|
|
5c83d40469 | ||
|
|
e2ad663fab | ||
|
|
587778c069 | ||
|
|
3c52d432ea | ||
|
|
10e4b01d5a | ||
|
|
ba32c430a1 | ||
|
|
433e5c601f | ||
|
|
2490495df1 | ||
|
|
65840c5809 | ||
|
|
ed4f78ecd6 | ||
|
|
aadf069e8d | ||
|
|
104c70560f | ||
|
|
aedf2b523e | ||
|
|
42f849bdb2 | ||
|
|
a94ee50518 | ||
|
|
4e9ecf7a38 | ||
|
|
962c87cbba | ||
|
|
ce74837b2d | ||
|
|
ce1733f109 | ||
|
|
a83b5b3beb | ||
|
|
a7c7435cea | ||
|
|
0906c0c2d9 | ||
|
|
4b7649dfec | ||
|
|
0bb9079024 | ||
|
|
c555182f16 | ||
|
|
4cca12df3c | ||
|
|
1aac8363a8 | ||
|
|
bcfc0ba4b2 | ||
|
|
e20270bc95 | ||
|
|
cb02abf440 | ||
|
|
7b7f353030 | ||
|
|
040be5a26e | ||
|
|
a319175e6b | ||
|
|
9b358c72c1 | ||
|
|
76b4c81106 | ||
|
|
f712833e67 | ||
|
|
7f7043b05d | ||
|
|
cff737c888 | ||
|
|
8919d30257 | ||
|
|
9900f6645b | ||
|
|
85b8aebbd3 | ||
|
|
04a2cba3ce | ||
|
|
fe999f7b8f | ||
|
|
ea372ee2a2 | ||
|
|
5e11c17ea2 | ||
|
|
5628add08f | ||
|
|
b9ac569df9 | ||
|
|
6fbd9b234d | ||
|
|
869c4ddcfa | ||
|
|
46f975fea9 | ||
|
|
38ad8d24c4 | ||
|
|
2f67ad2619 | ||
|
|
f35b3f5254 | ||
|
|
ac84c68d3d | ||
|
|
8f8c910d36 | ||
|
|
6f8113ced3 | ||
|
|
be8673a032 | ||
|
|
429c8affc8 | ||
|
|
caff672f6d | ||
|
|
0375f1e6bc | ||
|
|
e1116a77e8 | ||
|
|
01f97d6bf6 | ||
|
|
7c888c9539 | ||
|
|
787e519b14 | ||
|
|
308c747ce8 | ||
|
|
870a543196 | ||
|
|
fdf779a64c | ||
|
|
c545740c1f | ||
|
|
841584115b | ||
|
|
31f9e232f4 | ||
|
|
16cfb608db | ||
|
|
cf9f41c8af | ||
|
|
3680f52537 | ||
|
|
f7e98de4f7 | ||
|
|
a59b79b030 | ||
|
|
b14629f4e9 | ||
|
|
64942aecc4 | ||
|
|
e7d89f40d7 | ||
|
|
0abbe04dfe | ||
|
|
2117011f59 | ||
|
|
cb780ca155 | ||
|
|
7e0e21469c | ||
|
|
6deefc56db | ||
|
|
95165701fa | ||
|
|
6d008fb97b | ||
|
|
59360d917d | ||
|
|
95ff5ba8e6 | ||
|
|
4744e7fb95 | ||
|
|
efdcb6ac82 | ||
|
|
eda3895783 | ||
|
|
2ff06057e4 | ||
|
|
c676dd1932 | ||
|
|
4557d435be | ||
|
|
18cab7c938 | ||
|
|
ebf125b403 | ||
|
|
501a764a37 | ||
|
|
f27ed415f4 | ||
|
|
71d86c0650 | ||
|
|
2681c541ed | ||
|
|
5a453ce527 | ||
|
|
11d9d9ddfb | ||
|
|
1994df19b6 | ||
|
|
1689c2ee31 | ||
|
|
9488fd2175 | ||
|
|
54673c47d6 | ||
|
|
f58cc6dfe7 | ||
|
|
173fe0d18a | ||
|
|
138a9aa4f0 | ||
|
|
73e9c4455d | ||
|
|
6e1ab4be9e | ||
|
|
75e1b356f3 | ||
|
|
56c60a39de | ||
|
|
85a7106d2f | ||
|
|
4ceaa1ad08 | ||
|
|
0ce7e8ceec | ||
|
|
65e4d624b6 | ||
|
|
a989596f09 | ||
|
|
ed36d934d5 | ||
|
|
9f9a450440 | ||
|
|
435495a9c9 | ||
|
|
f3f74e5a25 | ||
|
|
e449ed2865 | ||
|
|
59049d137c | ||
|
|
9ac0aa3a9f | ||
|
|
447e19fad2 | ||
|
|
9431d35b69 | ||
|
|
41bc0da231 | ||
|
|
72a4e926c9 | ||
|
|
d0232b2492 | ||
|
|
9694735538 | ||
|
|
b563f40eb4 | ||
|
|
347134c956 | ||
|
|
6b2a476867 | ||
|
|
d7465c8352 | ||
|
|
58f6e4dd8d | ||
|
|
1822c7601c | ||
|
|
5ca71e3def | ||
|
|
19c354ca3d | ||
|
|
0415dbfa78 | ||
|
|
2678e6d973 | ||
|
|
3319bae646 | ||
|
|
4cc534069f | ||
|
|
545ec35e90 | ||
|
|
f75bfb6e7e | ||
|
|
34b6d85b70 | ||
|
|
9aab7f16b3 | ||
|
|
054f8b6c4d |
@@ -8,6 +8,7 @@
|
||||
<import addon="xbmc.python" version="2.1.0"/>
|
||||
@REQUIRES@
|
||||
</requires>
|
||||
<extension point="xbmc.python.script" library="default.py" />
|
||||
<extension point="xbmc.python.module" library="lib/">
|
||||
</extension>
|
||||
<extension point="xbmc.addon.metadata">
|
||||
|
||||
@@ -224,11 +224,13 @@ enable_service () {
|
||||
local target_dir=$INSTALL
|
||||
|
||||
[ -f "$target_dir/$unit_dir/$unit" ] || exit 1
|
||||
[ -z "$target" ] && target=`grep '^WantedBy' $target_dir/$unit_dir/$unit | cut -f2 -d=`
|
||||
|
||||
if [ -n "$target" ]; then
|
||||
mkdir -p ${target_dir}/$unit_dir/${target}.wants
|
||||
ln -sf ../${unit} ${target_dir}/$unit_dir/${target}.wants/
|
||||
if [ -z "$target" ] ; then
|
||||
for target in `grep '^WantedBy' $target_dir/$unit_dir/$unit | cut -f2 -d=` ; do
|
||||
if [ -n "$target" ]; then
|
||||
mkdir -p ${target_dir}/$unit_dir/${target}.wants
|
||||
ln -sf ../${unit} ${target_dir}/$unit_dir/${target}.wants/
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -282,7 +284,7 @@ show_config() {
|
||||
|
||||
dashes="==========================="
|
||||
config_message="$config_message\n $dashes$dashes$dashes"
|
||||
config_message="$config_message\n Configuration for $DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "unofficial"))"
|
||||
config_message="$config_message\n Configuration for $DISTRONAME ($([ "$OFFICIAL" = "yes" ] && echo "official" || echo "community"))"
|
||||
config_message="$config_message\n $dashes$dashes$dashes"
|
||||
|
||||
# Build options
|
||||
|
||||
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 56 KiB |
BIN
config/noobs/marketing/slides/slides.xcf
Normal file
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 19 KiB |
BIN
config/noobs/marketing/slides_vga/slides_vga.xcf
Normal file
@@ -6,5 +6,6 @@
|
||||
"description": "@DESCRIPTION@",
|
||||
"username": "root",
|
||||
"password": "@ROOT_PASSWORD@",
|
||||
"supported_models": [@NOOBS_SUPPORTED_MODELS@],
|
||||
"supported_hex_revisions": "@NOOBS_HEX@"
|
||||
}
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
#!/bin/sh -x
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
MOUNTPOINT="/tmp/OpenELEC-System"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{
|
||||
"label": "@DISTRONAME@_@PROJECT@_System",
|
||||
"filesystem_type": "FAT",
|
||||
"partition_size_nominal": 160,
|
||||
"partition_size_nominal": 512,
|
||||
"want_maximised": false,
|
||||
"uncompressed_tarball_size": 120,
|
||||
"mkfs_options": ""
|
||||
@@ -11,7 +11,7 @@
|
||||
{
|
||||
"label": "@DISTRONAME@_@PROJECT@_Storage",
|
||||
"filesystem_type": "ext4",
|
||||
"partition_size_nominal": 864,
|
||||
"partition_size_nominal": 512,
|
||||
"want_maximised": true,
|
||||
"uncompressed_tarball_size": 10,
|
||||
"mkfs_options": ""
|
||||
|
||||
@@ -90,8 +90,8 @@ fi
|
||||
if [ -f "$HOME/.openelec/options" ]; then
|
||||
. $HOME/.openelec/options
|
||||
fi
|
||||
if [ -f "$HOME/.openelec/$PROJECT/options" ]; then
|
||||
. $HOME/.openelec/$PROJECT/options
|
||||
if [ -f "$HOME/.openelec/projects/$PROJECT/options" ]; then
|
||||
. $HOME/.openelec/projects/$PROJECT/options
|
||||
fi
|
||||
|
||||
# read distro options from $HOME if available
|
||||
@@ -99,5 +99,10 @@ fi
|
||||
. $HOME/.openelec/options.$DISTRO
|
||||
fi
|
||||
|
||||
# overwrite OEM_SUPPORT via commandline
|
||||
if [ "$OEM" = yes -o "$OEM" = no ]; then
|
||||
OEM_SUPPORT=$OEM
|
||||
fi
|
||||
|
||||
. config/graphic
|
||||
. config/path $1
|
||||
|
||||
38
config/path
@@ -40,7 +40,7 @@ SYSROOT_PREFIX=$ROOT/$TOOLCHAIN/$TARGET_NAME/sysroot
|
||||
LIB_PREFIX=$SYSROOT_PREFIX/usr
|
||||
TARGET_PREFIX=$ROOT/$TOOLCHAIN/bin/$TARGET_NAME-
|
||||
|
||||
FAKEROOT_SCRIPT=$ROOT/.fakeroot.$PROJECT.$TARGET_ARCH
|
||||
FAKEROOT_SCRIPT=$ROOT/.fakeroot.$BUILD
|
||||
|
||||
if [ -z "$INSTALL" ]; then
|
||||
INSTALL=$BUILD/image/system
|
||||
@@ -77,7 +77,41 @@ SED="sed -i"
|
||||
_FOUND=0
|
||||
PKG_DIR=""
|
||||
|
||||
# first check project folder for a package
|
||||
# check project folder for a package in home dir
|
||||
for DIR in $(find $HOME/.openelec/projects/$PROJECT/packages -type d -name $_PKG_ROOT_NAME 2>/dev/null); do
|
||||
if [ -r "$DIR/package.mk" ]; then
|
||||
# found first, set $PKG_DIR
|
||||
PKG_DIR="$DIR"
|
||||
# keep track of dirs with package.mk for detecting multiple folders
|
||||
_ALL_DIRS="${_ALL_DIRS}${DIR}\\n"
|
||||
_FOUND=$((_FOUND+1))
|
||||
if [ $_FOUND -gt 1 ]; then
|
||||
# _FOUND more ? fail
|
||||
echo "Error - multiple package folders:"
|
||||
echo -e "$_ALL_DIRS"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# check for a package in home dir if not found already
|
||||
for DIR in $(find $HOME/.openelec/packages -type d -name $_PKG_ROOT_NAME 2>/dev/null); do
|
||||
if [ -r "$DIR/package.mk" ]; then
|
||||
# found first, set $PKG_DIR
|
||||
PKG_DIR="$DIR"
|
||||
# keep track of dirs with package.mk for detecting multiple folders
|
||||
_ALL_DIRS="${_ALL_DIRS}${DIR}\\n"
|
||||
_FOUND=$((_FOUND+1))
|
||||
if [ $_FOUND -gt 1 ]; then
|
||||
# _FOUND more ? fail
|
||||
echo "Error - multiple package folders:"
|
||||
echo -e "$_ALL_DIRS"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# check project folder for a package if not found already
|
||||
for DIR in $(find $ROOT/projects/$PROJECT/packages -type d -name $_PKG_ROOT_NAME 2>/dev/null); do
|
||||
if [ -r "$DIR/package.mk" ]; then
|
||||
# found first, set $PKG_DIR
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="devel"
|
||||
OPENELEC_VERSION="6.0.3"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="6.0"
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
# Welcome Message for e.g. SSH Server (up to 5 Lines)
|
||||
GREETING0="##############################################"
|
||||
GREETING1="# OpenELEC - The living room PC for everyone #"
|
||||
GREETING2="# ...... visit http://www.openelec.tv ...... #"
|
||||
GREETING1="# OpenELEC #"
|
||||
GREETING2="# http://openelec.tv #"
|
||||
GREETING3="##############################################"
|
||||
GREETING4=""
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
# for a list of additinoal drivers see packages/linux-drivers
|
||||
# Space separated list is supported,
|
||||
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
|
||||
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8188EU RTL8812AU dvbhdhomerun"
|
||||
ADDITIONAL_DRIVERS="RTL8192CU RTL8192DU RTL8192EU RTL8188EU RTL8812AU dvbhdhomerun"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
5
packages/3rdparty/lib/cxxtools/package.mk
vendored
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -48,6 +48,7 @@ post_makeinstall_host() {
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $SYSROOT_PREFIX/usr/bin/cxxtools-config
|
||||
$SED "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/bin/cxxtools-config
|
||||
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
||||
|
||||
2
packages/3rdparty/lib/libzip/package.mk
vendored
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
4
packages/3rdparty/web/tntnet/package.mk
vendored
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -51,6 +51,8 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-unittest \
|
||||
--with-stressjob=no"
|
||||
|
||||
post_makeinstall_target() {
|
||||
$SED "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/bin/tntnet-config
|
||||
|
||||
rm -rf $INSTALL/usr/bin
|
||||
rm -rf $INSTALL/usr/share
|
||||
}
|
||||
|
||||
517
packages/3rdparty/web/tntnet/patches/tntnet-pkgconfig-support.patch
vendored
Normal file
@@ -0,0 +1,517 @@
|
||||
diff -Naur tntnet-2.2.1/configure tntnet-2.2.1.patch/configure
|
||||
--- tntnet-2.2.1/configure 2014-01-17 20:11:49.000000000 +0100
|
||||
+++ tntnet-2.2.1.patch/configure 2016-01-07 06:34:42.002634975 +0100
|
||||
@@ -16495,7 +16546,7 @@
|
||||
ac_config_files="$ac_config_files tntnet-config"
|
||||
|
||||
|
||||
-ac_config_files="$ac_config_files Makefile framework/common/Makefile framework/runtime/Makefile framework/defcomp/Makefile sdk/tools/common/Makefile sdk/tools/ecppc/Makefile sdk/tools/ecppl/Makefile sdk/tools/ecppll/Makefile sdk/demos/Makefile sdk/demos/backgroundjob/Makefile sdk/demos/calc/Makefile sdk/demos/calcajax/Makefile sdk/demos/calcapp/Makefile sdk/demos/calcmvc/Makefile sdk/demos/calci18n/Makefile sdk/demos/chat/Makefile sdk/demos/comp/Makefile sdk/demos/config/Makefile sdk/demos/controls/Makefile sdk/demos/cookie/Makefile sdk/demos/hello/Makefile sdk/demos/savepoint/Makefile sdk/demos/session/Makefile sdk/demos/sprintf/Makefile sdk/demos/strings/Makefile sdk/demos/rajax-jquery/Makefile sdk/demos/upload/Makefile utest/Makefile doc/man/Makefile etc/Makefile"
|
||||
+ac_config_files="$ac_config_files Makefile framework/common/Makefile framework/runtime/Makefile framework/defcomp/Makefile pkgconfig/tntnet.pc pkgconfig/tntnet_sdk.pc sdk/tools/common/Makefile sdk/tools/ecppc/Makefile sdk/tools/ecppl/Makefile sdk/tools/ecppll/Makefile sdk/demos/Makefile sdk/demos/backgroundjob/Makefile sdk/demos/calc/Makefile sdk/demos/calcajax/Makefile sdk/demos/calcapp/Makefile sdk/demos/calcmvc/Makefile sdk/demos/calci18n/Makefile sdk/demos/chat/Makefile sdk/demos/comp/Makefile sdk/demos/config/Makefile sdk/demos/controls/Makefile sdk/demos/cookie/Makefile sdk/demos/hello/Makefile sdk/demos/savepoint/Makefile sdk/demos/session/Makefile sdk/demos/sprintf/Makefile sdk/demos/strings/Makefile sdk/demos/rajax-jquery/Makefile sdk/demos/upload/Makefile utest/Makefile doc/man/Makefile etc/Makefile"
|
||||
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
@@ -17642,6 +17693,8 @@
|
||||
"framework/common/Makefile") CONFIG_FILES="$CONFIG_FILES framework/common/Makefile" ;;
|
||||
"framework/runtime/Makefile") CONFIG_FILES="$CONFIG_FILES framework/runtime/Makefile" ;;
|
||||
"framework/defcomp/Makefile") CONFIG_FILES="$CONFIG_FILES framework/defcomp/Makefile" ;;
|
||||
+ "pkgconfig/tntnet.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/tntnet.pc" ;;
|
||||
+ "pkgconfig/tntnet_sdk.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/tntnet_sdk.pc" ;;
|
||||
"sdk/tools/common/Makefile") CONFIG_FILES="$CONFIG_FILES sdk/tools/common/Makefile" ;;
|
||||
"sdk/tools/ecppc/Makefile") CONFIG_FILES="$CONFIG_FILES sdk/tools/ecppc/Makefile" ;;
|
||||
"sdk/tools/ecppl/Makefile") CONFIG_FILES="$CONFIG_FILES sdk/tools/ecppl/Makefile" ;;
|
||||
diff -Naur tntnet-2.2.1/configure.in tntnet-2.2.1.patch/configure.in
|
||||
--- tntnet-2.2.1/configure.in 2014-01-17 20:11:40.000000000 +0100
|
||||
+++ tntnet-2.2.1.patch/configure.in 2016-01-07 06:08:14.679087771 +0100
|
||||
@@ -218,6 +218,8 @@
|
||||
framework/common/Makefile
|
||||
framework/runtime/Makefile
|
||||
framework/defcomp/Makefile
|
||||
+ pkgconfig/tntnet.pc
|
||||
+ pkgconfig/tntnet_sdk.pc
|
||||
sdk/tools/common/Makefile
|
||||
sdk/tools/ecppc/Makefile
|
||||
sdk/tools/ecppl/Makefile
|
||||
diff -Naur tntnet-2.2.1/Makefile.am tntnet-2.2.1.patch/Makefile.am
|
||||
--- tntnet-2.2.1/Makefile.am 2014-01-17 20:12:20.000000000 +0100
|
||||
+++ tntnet-2.2.1.patch/Makefile.am 2016-01-07 06:07:03.793973412 +0100
|
||||
@@ -80,3 +80,9 @@
|
||||
Releasenotes-2.2.markdown \
|
||||
Releasenotes-2.2.1.markdown \
|
||||
$(pkgdata_SCRIPTS)
|
||||
+
|
||||
+pkgconfigdir = $(libdir)/pkgconfig/
|
||||
+
|
||||
+pkgconfig_DATA = \
|
||||
+ pkgconfig/tntnet.pc \
|
||||
+ pkgconfig/tntnet_sdk.pc
|
||||
diff -Naur tntnet-2.2.1/Makefile.in tntnet-2.2.1.patch/Makefile.in
|
||||
--- tntnet-2.2.1/Makefile.in 2014-01-17 20:12:26.000000000 +0100
|
||||
+++ tntnet-2.2.1.patch/Makefile.in 2016-01-07 06:33:05.045478363 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
|
||||
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
|
||||
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -14,24 +14,53 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
+
|
||||
VPATH = @srcdir@
|
||||
-am__make_dryrun = \
|
||||
- { \
|
||||
- am__dry=no; \
|
||||
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
|
||||
+am__make_running_with_option = \
|
||||
+ case $${target_option-} in \
|
||||
+ ?) ;; \
|
||||
+ *) echo "am__make_running_with_option: internal error: invalid" \
|
||||
+ "target option '$${target_option-}' specified" >&2; \
|
||||
+ exit 1;; \
|
||||
+ esac; \
|
||||
+ has_opt=no; \
|
||||
+ sane_makeflags=$$MAKEFLAGS; \
|
||||
+ if $(am__is_gnu_make); then \
|
||||
+ sane_makeflags=$$MFLAGS; \
|
||||
+ else \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
||||
- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
||||
- *) \
|
||||
- for am__flg in $$MAKEFLAGS; do \
|
||||
- case $$am__flg in \
|
||||
- *=*|--*) ;; \
|
||||
- *n*) am__dry=yes; break;; \
|
||||
- esac; \
|
||||
- done;; \
|
||||
+ bs=\\; \
|
||||
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||
esac; \
|
||||
- test $$am__dry = yes; \
|
||||
- }
|
||||
+ fi; \
|
||||
+ skip_next=no; \
|
||||
+ strip_trailopt () \
|
||||
+ { \
|
||||
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||
+ }; \
|
||||
+ for flg in $$sane_makeflags; do \
|
||||
+ test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||
+ case $$flg in \
|
||||
+ *=*|--*) continue;; \
|
||||
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||
+ -*I?*) strip_trailopt 'I';; \
|
||||
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||
+ -*O?*) strip_trailopt 'O';; \
|
||||
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||
+ -*l?*) strip_trailopt 'l';; \
|
||||
+ -[dEDm]) skip_next=yes;; \
|
||||
+ -[JT]) skip_next=yes;; \
|
||||
+ esac; \
|
||||
+ case $$flg in \
|
||||
+ *$$target_option*) has_opt=yes; break;; \
|
||||
+ esac; \
|
||||
+ done; \
|
||||
+ test $$has_opt = yes
|
||||
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@@ -52,11 +81,13 @@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = .
|
||||
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
- $(srcdir)/Makefile.in $(srcdir)/tntnet-config.in \
|
||||
- $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||
- TODO config.guess config.sub depcomp install-sh ltmain.sh \
|
||||
- missing
|
||||
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
|
||||
+ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
||||
+ $(top_srcdir)/configure $(am__configure_deps) \
|
||||
+ $(srcdir)/tntnet-config.in \
|
||||
+ $(top_srcdir)/pkgconfig/tntnet.pc.in \
|
||||
+ $(top_srcdir)/pkgconfig/tntnet_sdk.pc.in COPYING TODO \
|
||||
+ config.guess config.sub depcomp install-sh missing ltmain.sh
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
|
||||
$(top_srcdir)/m4/ax_check_compile_flag.m4 \
|
||||
@@ -71,7 +102,8 @@
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/framework/common/config.h
|
||||
-CONFIG_CLEAN_FILES = tntnet-config
|
||||
+CONFIG_CLEAN_FILES = tntnet-config pkgconfig/tntnet.pc \
|
||||
+ pkgconfig/tntnet_sdk.pc
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
@@ -100,27 +132,62 @@
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)"
|
||||
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)" \
|
||||
+ "$(DESTDIR)$(pkgconfigdir)"
|
||||
SCRIPTS = $(bin_SCRIPTS) $(pkgdata_SCRIPTS)
|
||||
+AM_V_P = $(am__v_P_@AM_V@)
|
||||
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||
+am__v_P_0 = false
|
||||
+am__v_P_1 = :
|
||||
+AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
+am__v_GEN_0 = @echo " GEN " $@;
|
||||
+am__v_GEN_1 =
|
||||
+AM_V_at = $(am__v_at_@AM_V@)
|
||||
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
+am__v_at_0 = @
|
||||
+am__v_at_1 =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
- html-recursive info-recursive install-data-recursive \
|
||||
- install-dvi-recursive install-exec-recursive \
|
||||
- install-html-recursive install-info-recursive \
|
||||
- install-pdf-recursive install-ps-recursive install-recursive \
|
||||
- installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
- ps-recursive uninstall-recursive
|
||||
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
|
||||
+ ctags-recursive dvi-recursive html-recursive info-recursive \
|
||||
+ install-data-recursive install-dvi-recursive \
|
||||
+ install-exec-recursive install-html-recursive \
|
||||
+ install-info-recursive install-pdf-recursive \
|
||||
+ install-ps-recursive install-recursive installcheck-recursive \
|
||||
+ installdirs-recursive pdf-recursive ps-recursive \
|
||||
+ tags-recursive uninstall-recursive
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
+DATA = $(pkgconfig_DATA)
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
+am__recursive_targets = \
|
||||
+ $(RECURSIVE_TARGETS) \
|
||||
+ $(RECURSIVE_CLEAN_TARGETS) \
|
||||
+ $(am__extra_recursive_targets)
|
||||
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||
cscope distdir dist dist-all distcheck
|
||||
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||
+# Read a list of newline-separated strings from the standard input,
|
||||
+# and print each of them once, without duplicates. Input order is
|
||||
+# *not* preserved.
|
||||
+am__uniquify_input = $(AWK) '\
|
||||
+ BEGIN { nonempty = 0; } \
|
||||
+ { items[$$0] = 1; nonempty = 1; } \
|
||||
+ END { if (nonempty) { for (i in items) print i; }; } \
|
||||
+'
|
||||
+# Make sure the list of sources is unique. This is necessary because,
|
||||
+# e.g., the same source file might be shared among _SOURCES variables
|
||||
+# for different programs/libraries.
|
||||
+am__define_uniq_tagged_files = \
|
||||
+ list='$(am__tagged_files)'; \
|
||||
+ unique=`for i in $$list; do \
|
||||
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
+ done | $(am__uniquify_input)`
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
CSCOPE = cscope
|
||||
@@ -179,6 +246,7 @@
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -382,6 +450,11 @@
|
||||
Releasenotes-2.2.1.markdown \
|
||||
$(pkgdata_SCRIPTS)
|
||||
|
||||
+pkgconfigdir = $(libdir)/pkgconfig/
|
||||
+pkgconfig_DATA = \
|
||||
+ pkgconfig/tntnet.pc \
|
||||
+ pkgconfig/tntnet_sdk.pc
|
||||
+
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
@@ -421,6 +494,10 @@
|
||||
$(am__aclocal_m4_deps):
|
||||
tntnet-config: $(top_builddir)/config.status $(srcdir)/tntnet-config.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
+pkgconfig/tntnet.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/tntnet.pc.in
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
+pkgconfig/tntnet_sdk.pc: $(top_builddir)/config.status $(top_srcdir)/pkgconfig/tntnet_sdk.pc.in
|
||||
+ cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
|
||||
@@ -500,6 +577,27 @@
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool config.lt
|
||||
+install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||
+ @$(NORMAL_INSTALL)
|
||||
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||
+ if test -n "$$list"; then \
|
||||
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
|
||||
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
|
||||
+ fi; \
|
||||
+ for p in $$list; do \
|
||||
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
+ echo "$$d$$p"; \
|
||||
+ done | $(am__base_list) | \
|
||||
+ while read files; do \
|
||||
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
|
||||
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
|
||||
+ done
|
||||
+
|
||||
+uninstall-pkgconfigDATA:
|
||||
+ @$(NORMAL_UNINSTALL)
|
||||
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run 'make' without going through this Makefile.
|
||||
@@ -507,14 +605,13 @@
|
||||
# (1) if the variable is set in 'config.status', edit 'config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run 'make');
|
||||
# (2) otherwise, pass the desired values on the 'make' command line.
|
||||
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
|
||||
- @fail= failcom='exit 1'; \
|
||||
- for f in x $$MAKEFLAGS; do \
|
||||
- case $$f in \
|
||||
- *=* | --[!k]*);; \
|
||||
- *k*) failcom='fail=yes';; \
|
||||
- esac; \
|
||||
- done; \
|
||||
+$(am__recursive_targets):
|
||||
+ @fail=; \
|
||||
+ if $(am__make_keepgoing); then \
|
||||
+ failcom='fail=yes'; \
|
||||
+ else \
|
||||
+ failcom='exit 1'; \
|
||||
+ fi; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
case "$@" in \
|
||||
@@ -535,31 +632,13 @@
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
-tags-recursive:
|
||||
- list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
- done
|
||||
-ctags-recursive:
|
||||
- list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
- done
|
||||
-cscopelist-recursive:
|
||||
- list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
|
||||
- done
|
||||
|
||||
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
- unique=`for i in $$list; do \
|
||||
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
- done | \
|
||||
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
- END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
- mkid -fID $$unique
|
||||
-tags: TAGS
|
||||
+ID: $(am__tagged_files)
|
||||
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||
+tags: tags-recursive
|
||||
+TAGS: tags
|
||||
|
||||
-TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
- $(TAGS_FILES) $(LISP)
|
||||
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
@@ -575,12 +654,7 @@
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
- unique=`for i in $$list; do \
|
||||
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
- done | \
|
||||
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
- END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
+ $(am__define_uniq_tagged_files); \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
@@ -592,15 +666,11 @@
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
-ctags: CTAGS
|
||||
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
- $(TAGS_FILES) $(LISP)
|
||||
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
- unique=`for i in $$list; do \
|
||||
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
- done | \
|
||||
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
- END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
+ctags: ctags-recursive
|
||||
+
|
||||
+CTAGS: ctags
|
||||
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||
+ $(am__define_uniq_tagged_files); \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
@@ -609,18 +679,16 @@
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
-
|
||||
cscope: cscope.files
|
||||
test ! -s cscope.files \
|
||||
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
|
||||
-
|
||||
clean-cscope:
|
||||
-rm -f cscope.files
|
||||
+cscope.files: clean-cscope cscopelist
|
||||
+cscopelist: cscopelist-recursive
|
||||
|
||||
-cscope.files: clean-cscope cscopelist-recursive cscopelist
|
||||
-
|
||||
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
|
||||
- list='$(SOURCES) $(HEADERS) $(LISP)'; \
|
||||
+cscopelist-am: $(am__tagged_files)
|
||||
+ list='$(am__tagged_files)'; \
|
||||
case "$(srcdir)" in \
|
||||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||
@@ -754,9 +822,9 @@
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
- chmod -R a-w $(distdir); chmod u+w $(distdir)
|
||||
- mkdir $(distdir)/_build
|
||||
- mkdir $(distdir)/_inst
|
||||
+ chmod -R a-w $(distdir)
|
||||
+ chmod u+w $(distdir)
|
||||
+ mkdir $(distdir)/_build $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
@@ -820,10 +888,10 @@
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
-all-am: Makefile $(SCRIPTS)
|
||||
+all-am: Makefile $(SCRIPTS) $(DATA)
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)"; do \
|
||||
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkgconfigdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
@@ -878,7 +946,7 @@
|
||||
|
||||
info-am:
|
||||
|
||||
-install-data-am: install-pkgdataSCRIPTS
|
||||
+install-data-am: install-pkgconfigDATA install-pkgdataSCRIPTS
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
@@ -924,30 +992,29 @@
|
||||
|
||||
ps-am:
|
||||
|
||||
-uninstall-am: uninstall-binSCRIPTS uninstall-pkgdataSCRIPTS
|
||||
+uninstall-am: uninstall-binSCRIPTS uninstall-pkgconfigDATA \
|
||||
+ uninstall-pkgdataSCRIPTS
|
||||
+
|
||||
+.MAKE: $(am__recursive_targets) install-am install-strip
|
||||
|
||||
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
|
||||
- cscopelist-recursive ctags-recursive install-am install-strip \
|
||||
- tags-recursive
|
||||
-
|
||||
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
- all all-am am--refresh check check-am clean clean-cscope \
|
||||
- clean-generic clean-libtool cscope cscopelist \
|
||||
- cscopelist-recursive ctags ctags-recursive dist dist-all \
|
||||
- dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ dist-xz \
|
||||
- dist-zip distcheck distclean distclean-generic \
|
||||
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
|
||||
+ am--refresh check check-am clean clean-cscope clean-generic \
|
||||
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
|
||||
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
|
||||
+ dist-xz dist-zip distcheck distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-binSCRIPTS install-data \
|
||||
install-data-am install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-html install-html-am install-info \
|
||||
install-info-am install-man install-pdf install-pdf-am \
|
||||
- install-pkgdataSCRIPTS install-ps install-ps-am install-strip \
|
||||
- installcheck installcheck-am installdirs installdirs-am \
|
||||
- maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
- tags tags-recursive uninstall uninstall-am \
|
||||
- uninstall-binSCRIPTS uninstall-pkgdataSCRIPTS
|
||||
+ install-pkgconfigDATA install-pkgdataSCRIPTS install-ps \
|
||||
+ install-ps-am install-strip installcheck installcheck-am \
|
||||
+ installdirs installdirs-am maintainer-clean \
|
||||
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
|
||||
+ uninstall-am uninstall-binSCRIPTS uninstall-pkgconfigDATA \
|
||||
+ uninstall-pkgdataSCRIPTS
|
||||
|
||||
|
||||
tntnet-config: tntnet-config.in
|
||||
diff -Naur tntnet-2.2.1/pkgconfig/tntnet.pc.in tntnet-2.2.1.patch/pkgconfig/tntnet.pc.in
|
||||
--- tntnet-2.2.1/pkgconfig/tntnet.pc.in 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ tntnet-2.2.1.patch/pkgconfig/tntnet.pc.in 2016-01-07 06:07:03.794973414 +0100
|
||||
@@ -0,0 +1,11 @@
|
||||
+prefix=@prefix@
|
||||
+exec_prefix=@exec_prefix@
|
||||
+libdir=@libdir@
|
||||
+includedir=@includedir@
|
||||
+
|
||||
+Name: tntnet
|
||||
+Description: Modular, multithreaded web application library for C++
|
||||
+Version: @PACKAGE_VERSION@
|
||||
+Libs: -L${libdir} -ltntnet
|
||||
+Cflags: -I${includedir}
|
||||
+Requires.private: cxxtools
|
||||
diff -Naur tntnet-2.2.1/pkgconfig/tntnet_sdk.pc.in tntnet-2.2.1.patch/pkgconfig/tntnet_sdk.pc.in
|
||||
--- tntnet-2.2.1/pkgconfig/tntnet_sdk.pc.in 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ tntnet-2.2.1.patch/pkgconfig/tntnet_sdk.pc.in 2016-01-07 06:07:03.795973416 +0100
|
||||
@@ -0,0 +1,11 @@
|
||||
+prefix=@prefix@
|
||||
+exec_prefix=@exec_prefix@
|
||||
+libdir=@libdir@
|
||||
+includedir=@includedir@
|
||||
+
|
||||
+Name: tntnet_sdk
|
||||
+Description: Helper library for ecpp-parsing programs
|
||||
+Version: @PACKAGE_VERSION@
|
||||
+Libs: -L${libdir} -ltntnet_sdk
|
||||
+Cflags: -I${includedir}
|
||||
+Requires.private: cxxtools
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,26 +1,24 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="repository.unofficial.addon.pro"
|
||||
PKG_VERSION="6.0"
|
||||
PKG_REV="1"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://unofficial.addon.pro"
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="repository.unofficial.addon.pro"
|
||||
name="Unofficial [COLOR FF757677]Open[/COLOR][COLOR FF8ABEE2]ELEC[/COLOR] (@PROJECT@/@ARCH@) Add-ons"
|
||||
name="[COLOR FF757677]Open[/COLOR][COLOR FF8ABEE2]ELEC[/COLOR] Add-ons (unofficial)"
|
||||
version="@PKG_VERSION@.@PKG_REV@"
|
||||
provider-name="unofficial.addon.pro">
|
||||
provider-name="OpenELEC Community">
|
||||
<extension point="xbmc.addon.repository"
|
||||
name="Unofficial OpenELEC.tv Add-on Repository">
|
||||
<dir minversion="14.0.0">
|
||||
<info>http://unofficial.addon.pro/addons/4.3/@PROJECT@/@ARCH@/addons.xml</info>
|
||||
<checksum>http://unofficial.addon.pro/addons/4.3/@PROJECT@/@ARCH@/addons.xml.md5</checksum>
|
||||
<datadir zip="true">http://unofficial.addon.pro/addons/4.3/@PROJECT@/@ARCH@</datadir>
|
||||
</dir>
|
||||
name="OpenELEC Add-ons (unofficial)">
|
||||
<dir minversion="15.0.0">
|
||||
<info>http://unofficial.addon.pro/addons/6.0/@PROJECT@/@ARCH@/addons.xml</info>
|
||||
<checksum>http://unofficial.addon.pro/addons/6.0/@PROJECT@/@ARCH@/addons.xml.md5</checksum>
|
||||
@@ -17,14 +12,9 @@
|
||||
</dir>
|
||||
</extension>
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary>Unofficial addon repository for OpenELEC</summary>
|
||||
<description>
|
||||
[COLOR red]=== BIG FAT WARNING ===[/COLOR]
|
||||
Use this repository at your own risk.
|
||||
If your house gets burned, it's your fault, not ours.
|
||||
We give no guarantee. We give no support.
|
||||
</description>
|
||||
<disclaimer>This is an unofficial addon repository. please don't ask for support in openelec forum / irc channel</disclaimer>
|
||||
<summary>OpenELEC Add-ons (unofficial)</summary>
|
||||
<description>The OpenELEC unofficial repository contains add-ons from the community. These add-ons are not supported by OpenELEC staff. If you find a broken add-on please check the OpenELEC or Kodi forums for community support threads and ask the add-on author to submit fixes via GitHub.</description>
|
||||
<disclaimer>Add-ons in this repository are not maintained or supported by OpenELEC staff.</disclaimer>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
6.0.2
|
||||
- update to vdr-satip-2.2.3
|
||||
- update to vdr-plugin-vnsiserver-7c6ff30
|
||||
|
||||
6.0.1
|
||||
- update to vdr-plugin-dvbapi-0489e01
|
||||
- update to vdr-plugin-vnsiserver-a7b0670
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
PKG_NAME="vdr-addon"
|
||||
PKG_VERSION="6.0"
|
||||
PKG_REV="1"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.openelec.tv"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -23,7 +23,6 @@ PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://espeak.sourceforge.net/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.zip"
|
||||
PKG_SOURCE_DIR="$PKG_NAME/$PKG_NAME-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -33,5 +33,11 @@ PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
configure_target() {
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=0 -Denable-readline=0 ..
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DBUILD_SHARED_LIBS=0 \
|
||||
-Denable-readline=0 \
|
||||
-Denable-pulseaudio=0 \
|
||||
-Denable-libsndfile=0 \
|
||||
..
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,12 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libopenmpt"
|
||||
PKG_VERSION="0.2.4764"
|
||||
PKG_VERSION="0.2.5787-beta16"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://lib.openmpt.org/libopenmpt/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://lib.openmpt.org/files/libopenmpt/src/${PKG_NAME}-${PKG_VERSION}-autotools.tar.gz"
|
||||
PKG_SOURCE_DIR="${PKG_NAME}-${PKG_VERSION//-beta*/}-autotools"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
@@ -32,4 +33,7 @@ PKG_LONGDESC="libopenmpt renders mod music files as raw audio data, for playing
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||
--disable-shared \
|
||||
--without-portaudio \
|
||||
--without-portaudiocpp"
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libsndfile"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pulseaudio"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="lzo"
|
||||
PKG_VERSION="2.08"
|
||||
PKG_VERSION="2.09"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3090000"
|
||||
PKG_VERSION="autoconf-3110000"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
PKG_SITE="https://www.sqlite.org/"
|
||||
PKG_URL="https://www.sqlite.org/2015/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="https://www.sqlite.org/2016/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="database"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,8 +17,8 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gdb"
|
||||
PKG_VERSION="7.10"
|
||||
PKG_REV="1"
|
||||
PKG_VERSION="7.10.1"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/gdb/"
|
||||
@@ -43,6 +43,7 @@ pre_configure_target() {
|
||||
PKG_CONFIGURE_OPTS_TARGET="bash_cv_have_mbstate_t=set \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--with-auto-load-safe-path=/ \
|
||||
--disable-nls \
|
||||
--disable-sim \
|
||||
--without-x \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2010-2011 Roman Weber (roman@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="autoconf-archive"
|
||||
PKG_VERSION="2015.02.24"
|
||||
PKG_VERSION="2015.09.25"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="boost"
|
||||
PKG_VERSION="1_58_0"
|
||||
PKG_VERSION="1_60_0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="cmake"
|
||||
PKG_VERSION="3.3.2"
|
||||
PKG_VERSION="3.4.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.cmake.org/"
|
||||
PKG_URL="http://www.cmake.org/files/v3.3/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://www.cmake.org/files/v3.4/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_HOST="ccache:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="toolchain/devel"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="dbus-glib"
|
||||
PKG_VERSION="0.104"
|
||||
PKG_VERSION="0.106"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://freedesktop.org/wiki/Software/dbus"
|
||||
PKG_URL="http://dbus.freedesktop.org/releases/dbus-glib/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_SITE="https://freedesktop.org/wiki/Software/dbus"
|
||||
PKG_URL="https://dbus.freedesktop.org/releases/dbus-glib/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain dbus glib expat"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="elfutils"
|
||||
PKG_VERSION="0.161"
|
||||
PKG_VERSION="0.164"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
Really make -Werror conditional to BUILD_WERROR
|
||||
|
||||
Otherwise it will fail with an error message like this one:
|
||||
|
||||
elf_getarsym.c:290:9: error: 'n' may be used uninitialized in this
|
||||
function [-Werror=maybe-uninitialized]
|
||||
arsym[n].as_name = NULL;
|
||||
^
|
||||
cc1: all warnings being treated as errors
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
|
||||
diff -rup a/config/eu.am b/config/eu.am
|
||||
--- a/config/eu.am 2014-11-10 16:19:14.356031479 +0000
|
||||
+++ b/config/eu.am 2014-11-10 16:21:11.702072011 +0000
|
||||
@@ -35,7 +35,6 @@ LD_AS_NEEDED = @LD_AS_NEEDED@
|
||||
DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
|
||||
AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
|
||||
AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
|
||||
- $(if $($(*F)_no_Werror),,-Werror) \
|
||||
$(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
|
||||
$(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
|
||||
$($(*F)_CFLAGS)
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="fribidi"
|
||||
PKG_VERSION="0.19.5"
|
||||
PKG_VERSION="0.19.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://fribidi.org/"
|
||||
PKG_URL="http://fribidi.org/download/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_SITE="http://fribidi.freedesktop.org/"
|
||||
PKG_URL="http://fribidi.freedesktop.org/download/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
@@ -48,9 +48,9 @@ pre_configure_target() {
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
mkdir -p $ROOT/$TOOLCHAIN/bin
|
||||
cp -f $PKG_DIR/scripts/fribidi-config $ROOT/$TOOLCHAIN/bin
|
||||
chmod +x $ROOT/$TOOLCHAIN/bin/fribidi-config
|
||||
mkdir -p $SYSROOT_PREFIX/usr/bin
|
||||
cp -f $PKG_DIR/scripts/fribidi-config $SYSROOT_PREFIX/usr/bin
|
||||
chmod +x $SYSROOT_PREFIX/usr/bin/fribidi-config
|
||||
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gettext"
|
||||
PKG_VERSION="0.19.6"
|
||||
PKG_VERSION="0.19.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
diff -Naur gettext-0.19.1/gettext-tools/Makefile.am gettext-0.19.1.patch/gettext-tools/Makefile.am
|
||||
--- gettext-0.19.1/gettext-tools/Makefile.am 2014-05-01 11:37:33.000000000 +0200
|
||||
+++ gettext-0.19.1.patch/gettext-tools/Makefile.am 2014-06-23 16:06:15.225426222 +0200
|
||||
diff -Naur gettext-0.19.7/gettext-tools/Makefile.am gettext-0.19.7.patch/gettext-tools/Makefile.am
|
||||
--- gettext-0.19.7/gettext-tools/Makefile.am 2015-12-08 13:50:04.000000000 +0100
|
||||
+++ gettext-0.19.7.patch/gettext-tools/Makefile.am 2016-01-01 20:49:07.476011819 +0100
|
||||
@@ -19,7 +19,7 @@
|
||||
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
|
||||
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
|
||||
|
||||
-SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples
|
||||
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests
|
||||
-SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples its
|
||||
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests its
|
||||
|
||||
EXTRA_DIST = misc/DISCLAIM
|
||||
MOSTLYCLEANFILES = core *.stackdump
|
||||
diff -Naur gettext-0.19.1/gettext-tools/Makefile.in gettext-0.19.1.patch/gettext-tools/Makefile.in
|
||||
--- gettext-0.19.1/gettext-tools/Makefile.in 2014-06-10 07:42:48.000000000 +0200
|
||||
+++ gettext-0.19.1.patch/gettext-tools/Makefile.in 2014-06-23 16:06:32.453461116 +0200
|
||||
@@ -1556,7 +1556,7 @@
|
||||
diff -Naur gettext-0.19.7/gettext-tools/Makefile.in gettext-0.19.7.patch/gettext-tools/Makefile.in
|
||||
--- gettext-0.19.7/gettext-tools/Makefile.in 2015-12-28 00:09:39.000000000 +0100
|
||||
+++ gettext-0.19.7.patch/gettext-tools/Makefile.in 2016-01-01 20:49:29.444038357 +0100
|
||||
@@ -1865,7 +1865,7 @@
|
||||
top_srcdir = @top_srcdir@
|
||||
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
|
||||
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
|
||||
-SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples
|
||||
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests
|
||||
-SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples its
|
||||
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests its
|
||||
|
||||
# Allow users to use "gnulib-tool --update".
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="glib"
|
||||
PKG_VERSION="2.46.1"
|
||||
PKG_VERSION="2.46.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
27
packages/devel/glibc/patches/glibc-99.01-BZ18921.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
From 5c8c3123652045191474a4ca85fbb6e8d9e7d2bc Mon Sep 17 00:00:00 2001
|
||||
From: Roland McGrath <roland@hack.frob.com>
|
||||
Date: Fri, 4 Sep 2015 14:37:56 -0700
|
||||
Subject: [PATCH] BZ#18921: Fix opendir inverted o_directory_works test.
|
||||
|
||||
(cherry picked from commit bd9e69abb887d78d0d6708fc089cc9f3eabf106d)
|
||||
---
|
||||
ChangeLog | 8 ++++++++
|
||||
sysdeps/posix/opendir.c | 2 +-
|
||||
2 files changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sysdeps/posix/opendir.c b/sysdeps/posix/opendir.c
|
||||
index 6509f5c..9edf056 100644
|
||||
--- a/sysdeps/posix/opendir.c
|
||||
+++ b/sysdeps/posix/opendir.c
|
||||
@@ -105,7 +105,7 @@ need_isdir_precheck (void)
|
||||
tryopen_o_directory ();
|
||||
|
||||
/* We can skip the expensive `stat' call if O_DIRECTORY works. */
|
||||
- return o_directory_works > 0;
|
||||
+ return o_directory_works < 0;
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
--
|
||||
1.9.4
|
||||
|
||||
206
packages/devel/glibc/patches/glibc-99.02-BZ18887.patch
Normal file
@@ -0,0 +1,206 @@
|
||||
From 3007f797a1a596e954f44879a5a7267966186ba4 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Frysinger <vapier@gentoo.org>
|
||||
Date: Fri, 28 Aug 2015 17:08:49 -0400
|
||||
Subject: [PATCH] getmntent: fix memory corruption w/blank lines [BZ #18887]
|
||||
|
||||
The fix for BZ #17273 introduced a single byte of memory corruption when
|
||||
the line is entirely blank. It would walk back past the start of the
|
||||
buffer if the heap happened to be 0x20 or 0x09 and then write a NUL byte.
|
||||
buffer = '\n';
|
||||
end_ptr = buffer;
|
||||
while (end_ptr[-1] == ' ' || end_ptr[-1] == '\t')
|
||||
end_ptr--;
|
||||
*end_ptr = '\0';
|
||||
|
||||
Fix that and rework the tests. Adding the testcase for BZ #17273 to the
|
||||
existing \040 parser does not really make sense as it's unrelated, and
|
||||
leads to confusing behavior: it implicitly relies on the new entry being
|
||||
longer than the previous entry (since it just rewinds the FILE*). Split
|
||||
it out into its own dedicated testcase instead.
|
||||
|
||||
(cherry picked from commit b0e805fa0d6fea33745952df7b7f5442ca4c374f)
|
||||
---
|
||||
ChangeLog | 10 ++++++++
|
||||
NEWS | 2 +-
|
||||
misc/Makefile | 3 ++-
|
||||
misc/mntent_r.c | 4 +++-
|
||||
misc/tst-mntent-blank-corrupt.c | 45 ++++++++++++++++++++++++++++++++++
|
||||
misc/tst-mntent-blank-passno.c | 53 +++++++++++++++++++++++++++++++++++++++++
|
||||
misc/tst-mntent.c | 20 ----------------
|
||||
7 files changed, 114 insertions(+), 23 deletions(-)
|
||||
create mode 100644 misc/tst-mntent-blank-corrupt.c
|
||||
create mode 100644 misc/tst-mntent-blank-passno.c
|
||||
|
||||
diff --git a/misc/Makefile b/misc/Makefile
|
||||
index aecb0da..2f5edf6 100644
|
||||
--- a/misc/Makefile
|
||||
+++ b/misc/Makefile
|
||||
@@ -76,7 +76,8 @@ install-lib := libg.a
|
||||
gpl2lgpl := error.c error.h
|
||||
|
||||
tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
|
||||
- tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1
|
||||
+ tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \
|
||||
+ tst-mntent-blank-corrupt tst-mntent-blank-passno
|
||||
ifeq ($(run-built-tests),yes)
|
||||
tests-special += $(objpfx)tst-error1-mem.out
|
||||
endif
|
||||
diff --git a/misc/mntent_r.c b/misc/mntent_r.c
|
||||
index 6159873..4f26998 100644
|
||||
--- a/misc/mntent_r.c
|
||||
+++ b/misc/mntent_r.c
|
||||
@@ -136,7 +136,9 @@ __getmntent_r (FILE *stream, struct mntent *mp, char *buffer, int bufsiz)
|
||||
end_ptr = strchr (buffer, '\n');
|
||||
if (end_ptr != NULL) /* chop newline */
|
||||
{
|
||||
- while (end_ptr[-1] == ' ' || end_ptr[-1] == '\t')
|
||||
+ /* Do not walk past the start of buffer if it's all whitespace. */
|
||||
+ while (end_ptr != buffer
|
||||
+ && (end_ptr[-1] == ' ' || end_ptr[-1] == '\t'))
|
||||
end_ptr--;
|
||||
*end_ptr = '\0';
|
||||
}
|
||||
diff --git a/misc/tst-mntent-blank-corrupt.c b/misc/tst-mntent-blank-corrupt.c
|
||||
new file mode 100644
|
||||
index 0000000..92266a3
|
||||
--- /dev/null
|
||||
+++ b/misc/tst-mntent-blank-corrupt.c
|
||||
@@ -0,0 +1,45 @@
|
||||
+/* Make sure blank lines does not cause memory corruption BZ #18887.
|
||||
+
|
||||
+ Copyright (C) 2009-2015 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library 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
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <mntent.h>
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+
|
||||
+/* Make sure blank lines don't trigger memory corruption. This doesn't happen
|
||||
+ for all targets though, so it's a best effort test BZ #18887. */
|
||||
+static int
|
||||
+do_test (void)
|
||||
+{
|
||||
+ FILE *fp;
|
||||
+
|
||||
+ fp = tmpfile ();
|
||||
+ fputs ("\n \n/foo\\040dir /bar\\040dir auto bind \t \n", fp);
|
||||
+ rewind (fp);
|
||||
+
|
||||
+ /* The corruption happens here ... */
|
||||
+ getmntent (fp);
|
||||
+ /* ... but trigers here. */
|
||||
+ endmntent (fp);
|
||||
+
|
||||
+ /* If the test failed, we would crash, and not hit this point. */
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+#define TEST_FUNCTION do_test ()
|
||||
+#include "../test-skeleton.c"
|
||||
diff --git a/misc/tst-mntent-blank-passno.c b/misc/tst-mntent-blank-passno.c
|
||||
new file mode 100644
|
||||
index 0000000..fc04291
|
||||
--- /dev/null
|
||||
+++ b/misc/tst-mntent-blank-passno.c
|
||||
@@ -0,0 +1,53 @@
|
||||
+/* Make sure trailing whitespace is handled properly BZ #17273.
|
||||
+
|
||||
+ Copyright (C) 2009-2015 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library 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
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <mntent.h>
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+
|
||||
+/* Check entries to make sure trailing whitespace is ignored and we return the
|
||||
+ correct passno value BZ #17273. */
|
||||
+static int
|
||||
+do_test (void)
|
||||
+{
|
||||
+ int result = 0;
|
||||
+ FILE *fp;
|
||||
+ struct mntent *mnt;
|
||||
+
|
||||
+ fp = tmpfile ();
|
||||
+ fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp);
|
||||
+ rewind (fp);
|
||||
+
|
||||
+ mnt = getmntent (fp);
|
||||
+ if (strcmp (mnt->mnt_fsname, "/foo dir") != 0
|
||||
+ || strcmp (mnt->mnt_dir, "/bar dir") != 0
|
||||
+ || strcmp (mnt->mnt_type, "auto") != 0
|
||||
+ || strcmp (mnt->mnt_opts, "bind") != 0
|
||||
+ || mnt->mnt_freq != 0
|
||||
+ || mnt->mnt_passno != 0)
|
||||
+ {
|
||||
+ puts ("Error while reading entry with trailing whitespaces");
|
||||
+ result = 1;
|
||||
+ }
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+#define TEST_FUNCTION do_test ()
|
||||
+#include "../test-skeleton.c"
|
||||
diff --git a/misc/tst-mntent.c b/misc/tst-mntent.c
|
||||
index 876c89f..820b354 100644
|
||||
--- a/misc/tst-mntent.c
|
||||
+++ b/misc/tst-mntent.c
|
||||
@@ -73,26 +73,6 @@ main (int argc, char *argv[])
|
||||
puts ("Error while reading written entry back in");
|
||||
result = 1;
|
||||
}
|
||||
-
|
||||
- /* Part III: Entry with whitespaces at the end of a line. */
|
||||
- rewind (fp);
|
||||
-
|
||||
- fputs ("/foo\\040dir /bar\\040dir auto bind \t \n", fp);
|
||||
-
|
||||
- rewind (fp);
|
||||
-
|
||||
- mnt = getmntent (fp);
|
||||
-
|
||||
- if (strcmp (mnt->mnt_fsname, "/foo dir") != 0
|
||||
- || strcmp (mnt->mnt_dir, "/bar dir") != 0
|
||||
- || strcmp (mnt->mnt_type, "auto") != 0
|
||||
- || strcmp (mnt->mnt_opts, "bind") != 0
|
||||
- || mnt->mnt_freq != 0
|
||||
- || mnt->mnt_passno != 0)
|
||||
- {
|
||||
- puts ("Error while reading entry with trailing whitespaces");
|
||||
- result = 1;
|
||||
- }
|
||||
}
|
||||
|
||||
return result;
|
||||
--
|
||||
1.9.4
|
||||
|
||||
71
packages/devel/glibc/patches/glibc-99.03-BZ18781.patch
Normal file
@@ -0,0 +1,71 @@
|
||||
From 561a9f11a974a447acb3dd03550a05df701a900e Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Schwab <schwab@suse.de>
|
||||
Date: Mon, 10 Aug 2015 14:12:47 +0200
|
||||
Subject: [PATCH] Readd O_LARGEFILE flag for openat64 (bug 18781)
|
||||
|
||||
(cherry picked from commit eb32b0d40308166c4d8f6330cc2958cb1e545075)
|
||||
---
|
||||
ChangeLog | 7 +++++++
|
||||
NEWS | 2 +-
|
||||
io/test-lfs.c | 21 ++++++++++++++++++++-
|
||||
sysdeps/unix/sysv/linux/openat.c | 5 +++++
|
||||
4 files changed, 33 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/io/test-lfs.c b/io/test-lfs.c
|
||||
index 539c2a2..b6ebae4 100644
|
||||
--- a/io/test-lfs.c
|
||||
+++ b/io/test-lfs.c
|
||||
@@ -144,7 +144,7 @@ test_ftello (void)
|
||||
int
|
||||
do_test (int argc, char *argv[])
|
||||
{
|
||||
- int ret;
|
||||
+ int ret, fd2;
|
||||
struct stat64 statbuf;
|
||||
|
||||
ret = lseek64 (fd, TWO_GB+100, SEEK_SET);
|
||||
@@ -195,6 +195,25 @@ do_test (int argc, char *argv[])
|
||||
error (EXIT_FAILURE, 0, "stat reported size %lld instead of %lld.",
|
||||
(long long int) statbuf.st_size, (TWO_GB + 100 + 5));
|
||||
|
||||
+ fd2 = openat64 (AT_FDCWD, name, O_RDWR);
|
||||
+ if (fd2 == -1)
|
||||
+ {
|
||||
+ if (errno == ENOSYS)
|
||||
+ {
|
||||
+ /* Silently ignore this test. */
|
||||
+ error (0, 0, "openat64 is not supported");
|
||||
+ }
|
||||
+ else
|
||||
+ error (EXIT_FAILURE, errno, "openat64 failed to open big file");
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ret = close (fd2);
|
||||
+
|
||||
+ if (ret == -1)
|
||||
+ error (EXIT_FAILURE, errno, "error closing file");
|
||||
+ }
|
||||
+
|
||||
test_ftello ();
|
||||
|
||||
return 0;
|
||||
diff --git a/sysdeps/unix/sysv/linux/openat.c b/sysdeps/unix/sysv/linux/openat.c
|
||||
index 6777123..ad8e31d 100644
|
||||
--- a/sysdeps/unix/sysv/linux/openat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/openat.c
|
||||
@@ -68,6 +68,11 @@ __OPENAT (int fd, const char *file, int oflag, ...)
|
||||
va_end (arg);
|
||||
}
|
||||
|
||||
+ /* We have to add the O_LARGEFILE flag for openat64. */
|
||||
+#ifdef MORE_OFLAGS
|
||||
+ oflag |= MORE_OFLAGS;
|
||||
+#endif
|
||||
+
|
||||
return SYSCALL_CANCEL (openat, fd, file, oflag, mode);
|
||||
}
|
||||
libc_hidden_def (__OPENAT)
|
||||
--
|
||||
1.9.4
|
||||
|
||||
177
packages/devel/glibc/patches/glibc-99.04-BZ18778.patch
Normal file
@@ -0,0 +1,177 @@
|
||||
From a34d1c6afc86521d6ad17662a3b5362d8481514c Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Ostapenko <m.ostapenko@partner.samsung.com>
|
||||
Date: Mon, 10 Aug 2015 10:47:54 +0300
|
||||
Subject: [PATCH] Clear DF_1_NODELETE flag only for failed to load library.
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=18778
|
||||
|
||||
If dlopen fails to load an object that has triggered loading libpthread it
|
||||
causes ld.so to unload libpthread because its DF_1_NODELETE flags has been
|
||||
forcefully cleared. The next call to __rtdl_unlock_lock_recursive will crash
|
||||
since pthread_mutex_unlock no longer exists.
|
||||
|
||||
This patch moves l->l_flags_1 &= ~DF_1_NODELETE out of loop through all loaded
|
||||
libraries and performs the action only on inconsistent one.
|
||||
|
||||
[BZ #18778]
|
||||
* elf/Makefile (tests): Add Add tst-nodelete2.
|
||||
(modules-names): Add tst-nodelete2mod.
|
||||
(tst-nodelete2mod.so-no-z-defs): New.
|
||||
($(objpfx)tst-nodelete2): Likewise.
|
||||
($(objpfx)tst-nodelete2.out): Likewise.
|
||||
(LDFLAGS-tst-nodelete2): Likewise.
|
||||
* elf/dl-close.c (_dl_close_worker): Move DF_1_NODELETE clearing
|
||||
out of loop through all loaded libraries.
|
||||
* elf/tst-nodelete2.c: New file.
|
||||
* elf/tst-nodelete2mod.c: Likewise.
|
||||
|
||||
(cherry picked from commit f25238ffe0455013174438376b3ee88df496f9d1)
|
||||
---
|
||||
ChangeLog | 14 +++++++++
|
||||
NEWS | 2 +-
|
||||
elf/Makefile | 11 +++++--
|
||||
elf/dl-close.c | 15 ++++-----
|
||||
elf/tst-nodelete2.c | 37 +++++++++++++++++++++++
|
||||
elf/{tst-znodelete-zlib.cc => tst-nodelete2mod.c} | 3 +-
|
||||
6 files changed, 71 insertions(+), 11 deletions(-)
|
||||
create mode 100644 elf/tst-nodelete2.c
|
||||
rename elf/{tst-znodelete-zlib.cc => tst-nodelete2mod.c} (50%)
|
||||
|
||||
diff --git a/elf/Makefile b/elf/Makefile
|
||||
index 4ceeaf8..71a18a1 100644
|
||||
--- a/elf/Makefile
|
||||
+++ b/elf/Makefile
|
||||
@@ -148,7 +148,8 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
|
||||
tst-unique1 tst-unique2 $(if $(CXX),tst-unique3 tst-unique4 \
|
||||
tst-nodelete) \
|
||||
tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \
|
||||
- tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened
|
||||
+ tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \
|
||||
+ tst-nodelete2
|
||||
# reldep9
|
||||
ifeq ($(build-hardcoded-path-in-tests),yes)
|
||||
tests += tst-dlopen-aout
|
||||
@@ -218,7 +219,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
|
||||
tst-initorder2d \
|
||||
tst-relsort1mod1 tst-relsort1mod2 tst-array2dep \
|
||||
tst-array5dep tst-null-argv-lib \
|
||||
- tst-tlsalign-lib tst-nodelete-opened-lib
|
||||
+ tst-tlsalign-lib tst-nodelete-opened-lib tst-nodelete2mod
|
||||
ifeq (yes,$(have-protected-data))
|
||||
modules-names += tst-protected1moda tst-protected1modb
|
||||
tests += tst-protected1a tst-protected1b
|
||||
@@ -594,6 +595,7 @@ tst-auditmod9b.so-no-z-defs = yes
|
||||
tst-nodelete-uniquemod.so-no-z-defs = yes
|
||||
tst-nodelete-rtldmod.so-no-z-defs = yes
|
||||
tst-nodelete-zmod.so-no-z-defs = yes
|
||||
+tst-nodelete2mod.so-no-z-defs = yes
|
||||
|
||||
ifeq ($(build-shared),yes)
|
||||
# Build all the modules even when not actually running test programs.
|
||||
@@ -1164,6 +1166,11 @@ $(objpfx)tst-nodelete.out: $(objpfx)tst-nodelete-uniquemod.so \
|
||||
LDFLAGS-tst-nodelete = -rdynamic
|
||||
LDFLAGS-tst-nodelete-zmod.so = -Wl,--enable-new-dtags,-z,nodelete
|
||||
|
||||
+$(objpfx)tst-nodelete2: $(libdl)
|
||||
+$(objpfx)tst-nodelete2.out: $(objpfx)tst-nodelete2mod.so
|
||||
+
|
||||
+LDFLAGS-tst-nodelete2 = -rdynamic
|
||||
+
|
||||
$(objpfx)tst-initorder-cmp.out: tst-initorder.exp $(objpfx)tst-initorder.out
|
||||
cmp $^ > $@; \
|
||||
$(evaluate-test)
|
||||
diff --git a/elf/dl-close.c b/elf/dl-close.c
|
||||
index 9105277..c897247 100644
|
||||
--- a/elf/dl-close.c
|
||||
+++ b/elf/dl-close.c
|
||||
@@ -144,6 +144,14 @@ _dl_close_worker (struct link_map *map, bool force)
|
||||
char done[nloaded];
|
||||
struct link_map *maps[nloaded];
|
||||
|
||||
+ /* Clear DF_1_NODELETE to force object deletion. We don't need to touch
|
||||
+ l_tls_dtor_count because forced object deletion only happens when an
|
||||
+ error occurs during object load. Destructor registration for TLS
|
||||
+ non-POD objects should not have happened till then for this
|
||||
+ object. */
|
||||
+ if (force)
|
||||
+ map->l_flags_1 &= ~DF_1_NODELETE;
|
||||
+
|
||||
/* Run over the list and assign indexes to the link maps and enter
|
||||
them into the MAPS array. */
|
||||
int idx = 0;
|
||||
@@ -153,13 +161,6 @@ _dl_close_worker (struct link_map *map, bool force)
|
||||
maps[idx] = l;
|
||||
++idx;
|
||||
|
||||
- /* Clear DF_1_NODELETE to force object deletion. We don't need to touch
|
||||
- l_tls_dtor_count because forced object deletion only happens when an
|
||||
- error occurs during object load. Destructor registration for TLS
|
||||
- non-POD objects should not have happened till then for this
|
||||
- object. */
|
||||
- if (force)
|
||||
- l->l_flags_1 &= ~DF_1_NODELETE;
|
||||
}
|
||||
assert (idx == nloaded);
|
||||
|
||||
diff --git a/elf/tst-nodelete2.c b/elf/tst-nodelete2.c
|
||||
new file mode 100644
|
||||
index 0000000..388e8af
|
||||
--- /dev/null
|
||||
+++ b/elf/tst-nodelete2.c
|
||||
@@ -0,0 +1,37 @@
|
||||
+#include "../dlfcn/dlfcn.h"
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <gnu/lib-names.h>
|
||||
+
|
||||
+static int
|
||||
+do_test (void)
|
||||
+{
|
||||
+ int result = 0;
|
||||
+
|
||||
+ printf ("\nOpening pthread library.\n");
|
||||
+ void *pthread = dlopen (LIBPTHREAD_SO, RTLD_LAZY);
|
||||
+
|
||||
+ /* This is a test for correct DF_1_NODELETE clearing when dlopen failure
|
||||
+ happens. We should clear DF_1_NODELETE for failed library only, because
|
||||
+ doing this for others (e.g. libpthread) might cause them to be unloaded,
|
||||
+ that may lead to some global references (e.g. __rtld_lock_unlock) to be
|
||||
+ broken. The dlopen should fail because of undefined symbols in shared
|
||||
+ library, that cause DF_1_NODELETE to be cleared. For libpthread, this
|
||||
+ flag should be set, because if not, SIGSEGV will happen in dlclose. */
|
||||
+ if (dlopen ("tst-nodelete2mod.so", RTLD_NOW) != NULL)
|
||||
+ {
|
||||
+ printf ("Unique symbols test failed\n");
|
||||
+ result = 1;
|
||||
+ }
|
||||
+
|
||||
+ if (pthread)
|
||||
+ dlclose (pthread);
|
||||
+
|
||||
+ if (result == 0)
|
||||
+ printf ("SUCCESS\n");
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+#define TEST_FUNCTION do_test ()
|
||||
+#include "../test-skeleton.c"
|
||||
diff --git a/elf/tst-znodelete-zlib.cc b/elf/tst-nodelete2mod.c
|
||||
similarity index 50%
|
||||
rename from elf/tst-znodelete-zlib.cc
|
||||
rename to elf/tst-nodelete2mod.c
|
||||
index 1e8f368..e88c756 100644
|
||||
--- a/elf/tst-znodelete-zlib.cc
|
||||
+++ b/elf/tst-nodelete2mod.c
|
||||
@@ -1,6 +1,7 @@
|
||||
+/* Undefined symbol. */
|
||||
extern int not_exist (void);
|
||||
|
||||
int foo (void)
|
||||
{
|
||||
- return not_exist ();
|
||||
+ return not_exist ();
|
||||
}
|
||||
--
|
||||
1.9.4
|
||||
|
||||
319
packages/devel/glibc/patches/glibc-99.05-BZ18589.patch
Normal file
@@ -0,0 +1,319 @@
|
||||
From 6c84109cfa26f35c3dfed3acb97d347361bd5849 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos O'Donell <carlos@systemhalted.org>
|
||||
Date: Thu, 8 Oct 2015 16:34:53 -0400
|
||||
Subject: [PATCH] strcoll: Remove incorrect STRDIFF-based optimization (Bug
|
||||
18589).
|
||||
|
||||
The optimization introduced in commit
|
||||
f13c2a8dff2329c6692a80176262ceaaf8a6f74e, causes regressions in
|
||||
sorting for languages that have digraphs that change sort order, like
|
||||
cs_CZ which sorts ch between h and i.
|
||||
|
||||
My analysis shows the fast-forwarding optimization in STRCOLL advances
|
||||
through a digraph while possibly stopping in the middle which results
|
||||
in a subsequent skipping of the digraph and incorrect sorting. The
|
||||
optimization is incorrect as implemented and because of that I'm
|
||||
removing it for 2.23, and I will also commit this fix for 2.22 where
|
||||
it was originally introduced.
|
||||
|
||||
This patch reverts the optimization, introduces a new bug-strcoll2.c
|
||||
regression test that tests both cs_CZ.UTF-8 and da_DK.ISO-8859-1 and
|
||||
ensures they sort one digraph each correctly. The optimization can't be
|
||||
applied without regressing this test.
|
||||
|
||||
Checked on x86_64, bug-strcoll2.c fails without this patch and passes
|
||||
after. This will also get a fix on 2.22 which has the same bug.
|
||||
|
||||
(cherry picked from commit 87701a58e291bd7ac3b407d10a829dac52c9c16e)
|
||||
---
|
||||
ChangeLog | 14 +++++++
|
||||
NEWS | 2 +-
|
||||
locale/C-collate.c | 4 +-
|
||||
locale/categories.def | 1 -
|
||||
locale/langinfo.h | 1 -
|
||||
locale/localeinfo.h | 8 ----
|
||||
locale/programs/ld-collate.c | 9 -----
|
||||
string/bug-strcoll2.c | 93 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
string/strcoll_l.c | 38 +-----------------
|
||||
wcsmbs/wcscoll_l.c | 1 -
|
||||
10 files changed, 110 insertions(+), 61 deletions(-)
|
||||
create mode 100644 string/bug-strcoll2.c
|
||||
|
||||
diff --git a/locale/C-collate.c b/locale/C-collate.c
|
||||
index d7f3c55..06dfdfa 100644
|
||||
--- a/locale/C-collate.c
|
||||
+++ b/locale/C-collate.c
|
||||
@@ -144,8 +144,6 @@ const struct __locale_data _nl_C_LC_COLLATE attribute_hidden =
|
||||
/* _NL_COLLATE_COLLSEQWC */
|
||||
{ .string = (const char *) collseqwc },
|
||||
/* _NL_COLLATE_CODESET */
|
||||
- { .string = _nl_C_codeset },
|
||||
- /* _NL_COLLATE_ENCODING_TYPE */
|
||||
- { .word = __cet_8bit }
|
||||
+ { .string = _nl_C_codeset }
|
||||
}
|
||||
};
|
||||
diff --git a/locale/categories.def b/locale/categories.def
|
||||
index 045489d..a8dda53 100644
|
||||
--- a/locale/categories.def
|
||||
+++ b/locale/categories.def
|
||||
@@ -58,7 +58,6 @@ DEFINE_CATEGORY
|
||||
DEFINE_ELEMENT (_NL_COLLATE_COLLSEQMB, "collate-collseqmb", std, wstring)
|
||||
DEFINE_ELEMENT (_NL_COLLATE_COLLSEQWC, "collate-collseqwc", std, wstring)
|
||||
DEFINE_ELEMENT (_NL_COLLATE_CODESET, "collate-codeset", std, string)
|
||||
- DEFINE_ELEMENT (_NL_COLLATE_ENCODING_TYPE, "collate-encoding-type", std, word)
|
||||
), NO_POSTLOAD)
|
||||
|
||||
|
||||
diff --git a/locale/langinfo.h b/locale/langinfo.h
|
||||
index ffc5c7f..a565d9d 100644
|
||||
--- a/locale/langinfo.h
|
||||
+++ b/locale/langinfo.h
|
||||
@@ -255,7 +255,6 @@ enum
|
||||
_NL_COLLATE_COLLSEQMB,
|
||||
_NL_COLLATE_COLLSEQWC,
|
||||
_NL_COLLATE_CODESET,
|
||||
- _NL_COLLATE_ENCODING_TYPE,
|
||||
_NL_NUM_LC_COLLATE,
|
||||
|
||||
/* LC_CTYPE category: character classification.
|
||||
diff --git a/locale/localeinfo.h b/locale/localeinfo.h
|
||||
index bdab9fe..1d2ee00 100644
|
||||
--- a/locale/localeinfo.h
|
||||
+++ b/locale/localeinfo.h
|
||||
@@ -110,14 +110,6 @@ enum coll_sort_rule
|
||||
sort_mask
|
||||
};
|
||||
|
||||
-/* Collation encoding type. */
|
||||
-enum collation_encoding_type
|
||||
-{
|
||||
- __cet_other,
|
||||
- __cet_8bit,
|
||||
- __cet_utf8
|
||||
-};
|
||||
-
|
||||
/* We can map the types of the entries into a few categories. */
|
||||
enum value_type
|
||||
{
|
||||
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
|
||||
index a39a94f..dc0fe30 100644
|
||||
--- a/locale/programs/ld-collate.c
|
||||
+++ b/locale/programs/ld-collate.c
|
||||
@@ -32,7 +32,6 @@
|
||||
#include "linereader.h"
|
||||
#include "locfile.h"
|
||||
#include "elem-hash.h"
|
||||
-#include "../localeinfo.h"
|
||||
|
||||
/* Uncomment the following line in the production version. */
|
||||
/* #define NDEBUG 1 */
|
||||
@@ -2131,8 +2130,6 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
|
||||
/* The words have to be handled specially. */
|
||||
if (idx == _NL_ITEM_INDEX (_NL_COLLATE_SYMB_HASH_SIZEMB))
|
||||
add_locale_uint32 (&file, 0);
|
||||
- else if (idx == _NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE))
|
||||
- add_locale_uint32 (&file, __cet_other);
|
||||
else
|
||||
add_locale_empty (&file);
|
||||
}
|
||||
@@ -2496,12 +2493,6 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
|
||||
add_locale_raw_data (&file, collate->mbseqorder, 256);
|
||||
add_locale_collseq_table (&file, &collate->wcseqorder);
|
||||
add_locale_string (&file, charmap->code_set_name);
|
||||
- if (strcmp (charmap->code_set_name, "UTF-8") == 0)
|
||||
- add_locale_uint32 (&file, __cet_utf8);
|
||||
- else if (charmap->mb_cur_max == 1)
|
||||
- add_locale_uint32 (&file, __cet_8bit);
|
||||
- else
|
||||
- add_locale_uint32 (&file, __cet_other);
|
||||
write_locale_data (output_path, LC_COLLATE, "LC_COLLATE", &file);
|
||||
|
||||
obstack_free (&weightpool, NULL);
|
||||
diff --git a/string/bug-strcoll2.c b/string/bug-strcoll2.c
|
||||
new file mode 100644
|
||||
index 0000000..5ce2f94
|
||||
--- /dev/null
|
||||
+++ b/string/bug-strcoll2.c
|
||||
@@ -0,0 +1,93 @@
|
||||
+/* Bug 18589: sort-test.sh fails at random.
|
||||
+ Copyright (C) 1998-2015 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library 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
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+#include <locale.h>
|
||||
+
|
||||
+/* An incorrect strcoll optimization resulted in incorrect
|
||||
+ results from strcoll for cs_CZ and da_DK. */
|
||||
+
|
||||
+int
|
||||
+test_cs_CZ (void)
|
||||
+{
|
||||
+ const char t1[] = "config";
|
||||
+ const char t2[] = "choose";
|
||||
+ if (setlocale (LC_ALL, "cs_CZ.UTF-8") == NULL)
|
||||
+ {
|
||||
+ perror ("setlocale");
|
||||
+ return 1;
|
||||
+ }
|
||||
+ /* In Czech the digraph ch sorts after c, therefore we expect
|
||||
+ config to sort before choose. */
|
||||
+ int a = strcoll (t1, t2);
|
||||
+ int b = strcoll (t2, t1);
|
||||
+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a);
|
||||
+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b);
|
||||
+ if (a < 0 && b > 0)
|
||||
+ {
|
||||
+ puts ("PASS: config < choose");
|
||||
+ return 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ puts ("FAIL: Wrong sorting in cz_CZ.UTF-8.");
|
||||
+ return 1;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+test_da_DK (void)
|
||||
+{
|
||||
+ const char t1[] = "AS";
|
||||
+ const char t2[] = "AA";
|
||||
+ if (setlocale (LC_ALL, "da_DK.ISO-8859-1") == NULL)
|
||||
+ {
|
||||
+ perror ("setlocale");
|
||||
+ return 1;
|
||||
+ }
|
||||
+ /* AA should be treated as the last letter of the Danish alphabet,
|
||||
+ hence sorting after AS. */
|
||||
+ int a = strcoll (t1, t2);
|
||||
+ int b = strcoll (t2, t1);
|
||||
+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a);
|
||||
+ printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b);
|
||||
+ if (a < 0 && b > 0)
|
||||
+ {
|
||||
+ puts ("PASS: AS < AA");
|
||||
+ return 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ puts ("FAIL: Wrong sorting in da_DK.ISO-8859-1");
|
||||
+ return 1;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+do_test (void)
|
||||
+{
|
||||
+ int err = 0;
|
||||
+ err |= test_cs_CZ ();
|
||||
+ err |= test_da_DK ();
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
+#define TEST_FUNCTION do_test ()
|
||||
+#include "../test-skeleton.c"
|
||||
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
|
||||
index 8f1225f..35bc0e4 100644
|
||||
--- a/string/strcoll_l.c
|
||||
+++ b/string/strcoll_l.c
|
||||
@@ -29,7 +29,6 @@
|
||||
# define STRING_TYPE char
|
||||
# define USTRING_TYPE unsigned char
|
||||
# define STRCOLL __strcoll_l
|
||||
-# define STRDIFF __strdiff
|
||||
# define STRCMP strcmp
|
||||
# define WEIGHT_H "../locale/weight.h"
|
||||
# define SUFFIX MB
|
||||
@@ -42,20 +41,6 @@
|
||||
#include "../locale/localeinfo.h"
|
||||
#include WEIGHT_H
|
||||
|
||||
-#define MASK_UTF8_7BIT (1 << 7)
|
||||
-#define MASK_UTF8_START (3 << 6)
|
||||
-
|
||||
-size_t
|
||||
-STRDIFF (const STRING_TYPE *s, const STRING_TYPE *t)
|
||||
-{
|
||||
- size_t n;
|
||||
-
|
||||
- for (n = 0; *s != '\0' && *s++ == *t++; ++n)
|
||||
- continue;
|
||||
-
|
||||
- return n;
|
||||
-}
|
||||
-
|
||||
/* Track status while looking for sequences in a string. */
|
||||
typedef struct
|
||||
{
|
||||
@@ -269,29 +254,9 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
|
||||
const USTRING_TYPE *extra;
|
||||
const int32_t *indirect;
|
||||
|
||||
- /* In case there is no locale specific sort order (C / POSIX). */
|
||||
if (nrules == 0)
|
||||
return STRCMP (s1, s2);
|
||||
|
||||
- /* Fast forward to the position of the first difference. Needs to be
|
||||
- encoding aware as the byte-by-byte comparison can stop in the middle
|
||||
- of a char sequence for multibyte encodings like UTF-8. */
|
||||
- uint_fast32_t encoding =
|
||||
- current->values[_NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE)].word;
|
||||
- if (encoding != __cet_other)
|
||||
- {
|
||||
- size_t diff = STRDIFF (s1, s2);
|
||||
- if (diff > 0)
|
||||
- {
|
||||
- if (encoding == __cet_utf8 && (*(s1 + diff) & MASK_UTF8_7BIT) != 0)
|
||||
- do
|
||||
- diff--;
|
||||
- while (diff > 0 && (*(s1 + diff) & MASK_UTF8_START) != MASK_UTF8_START);
|
||||
- s1 += diff;
|
||||
- s2 += diff;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
/* Catch empty strings. */
|
||||
if (__glibc_unlikely (*s1 == '\0') || __glibc_unlikely (*s2 == '\0'))
|
||||
return (*s1 != '\0') - (*s2 != '\0');
|
||||
@@ -358,8 +323,7 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
|
||||
byte-level comparison to ensure that we don't waste time
|
||||
going through multiple passes for totally equal strings
|
||||
before proceeding to subsequent passes. */
|
||||
- if (pass == 0 && encoding == __cet_other &&
|
||||
- STRCMP (s1, s2) == 0)
|
||||
+ if (pass == 0 && STRCMP (s1, s2) == 0)
|
||||
return result;
|
||||
else
|
||||
break;
|
||||
diff --git a/wcsmbs/wcscoll_l.c b/wcsmbs/wcscoll_l.c
|
||||
index 6d9384a..87f240d 100644
|
||||
--- a/wcsmbs/wcscoll_l.c
|
||||
+++ b/wcsmbs/wcscoll_l.c
|
||||
@@ -23,7 +23,6 @@
|
||||
#define STRING_TYPE wchar_t
|
||||
#define USTRING_TYPE wint_t
|
||||
#define STRCOLL __wcscoll_l
|
||||
-#define STRDIFF __wcsdiff
|
||||
#define STRCMP __wcscmp
|
||||
#define WEIGHT_H "../locale/weightwc.h"
|
||||
#define SUFFIX WC
|
||||
--
|
||||
1.9.4
|
||||
|
||||
613
packages/devel/glibc/patches/glibc-99.06-CVE-2015-7547.patch
Normal file
@@ -0,0 +1,613 @@
|
||||
From e9db92d3acfe1822d56d11abcea5bfc4c41cf6ca Mon Sep 17 00:00:00 2001
|
||||
From: Carlos O'Donell <carlos@systemhalted.org>
|
||||
Date: Tue, 16 Feb 2016 21:26:37 -0500
|
||||
Subject: [PATCH] CVE-2015-7547: getaddrinfo() stack-based buffer overflow (Bug
|
||||
18665).
|
||||
|
||||
* A stack-based buffer overflow was found in libresolv when invoked from
|
||||
libnss_dns, allowing specially crafted DNS responses to seize control
|
||||
of execution flow in the DNS client. The buffer overflow occurs in
|
||||
the functions send_dg (send datagram) and send_vc (send TCP) for the
|
||||
NSS module libnss_dns.so.2 when calling getaddrinfo with AF_UNSPEC
|
||||
family. The use of AF_UNSPEC triggers the low-level resolver code to
|
||||
send out two parallel queries for A and AAAA. A mismanagement of the
|
||||
buffers used for those queries could result in the response of a query
|
||||
writing beyond the alloca allocated buffer created by
|
||||
_nss_dns_gethostbyname4_r. Buffer management is simplified to remove
|
||||
the overflow. Thanks to the Google Security Team and Red Hat for
|
||||
reporting the security impact of this issue, and Robert Holiday of
|
||||
Ciena for reporting the related bug 18665. (CVE-2015-7547)
|
||||
|
||||
See also:
|
||||
https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html
|
||||
https://sourceware.org/ml/libc-alpha/2016-02/msg00418.html
|
||||
---
|
||||
ChangeLog | 17 ++-
|
||||
NEWS | 14 +++
|
||||
resolv/nss_dns/dns-host.c | 111 +++++++++++++++++++-
|
||||
resolv/res_query.c | 3 +
|
||||
resolv/res_send.c | 260 +++++++++++++++++++++++++++++++++++-----------
|
||||
5 files changed, 339 insertions(+), 66 deletions(-)
|
||||
|
||||
diff --git a/NEWS b/NEWS
|
||||
index 93c09be..f80ce9c 100644
|
||||
--- a/NEWS
|
||||
+++ b/NEWS
|
||||
@@ -79,6 +79,20 @@ Security related changes:
|
||||
depending on the length of the string passed as an argument to the
|
||||
functions. Reported by Joseph Myers.
|
||||
|
||||
+* A stack-based buffer overflow was found in libresolv when invoked from
|
||||
+ libnss_dns, allowing specially crafted DNS responses to seize control
|
||||
+ of execution flow in the DNS client. The buffer overflow occurs in
|
||||
+ the functions send_dg (send datagram) and send_vc (send TCP) for the
|
||||
+ NSS module libnss_dns.so.2 when calling getaddrinfo with AF_UNSPEC
|
||||
+ family. The use of AF_UNSPEC triggers the low-level resolver code to
|
||||
+ send out two parallel queries for A and AAAA. A mismanagement of the
|
||||
+ buffers used for those queries could result in the response of a query
|
||||
+ writing beyond the alloca allocated buffer created by
|
||||
+ _nss_dns_gethostbyname4_r. Buffer management is simplified to remove
|
||||
+ the overflow. Thanks to the Google Security Team and Red Hat for
|
||||
+ reporting the security impact of this issue, and Robert Holiday of
|
||||
+ Ciena for reporting the related bug 18665. (CVE-2015-7547)
|
||||
+
|
||||
* The following bugs are resolved with this release:
|
||||
|
||||
[The release manager will add the list generated by
|
||||
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
|
||||
index a255d5e..8599f4c 100644
|
||||
--- a/resolv/nss_dns/dns-host.c
|
||||
+++ b/resolv/nss_dns/dns-host.c
|
||||
@@ -1031,7 +1031,10 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
|
||||
int h_namelen = 0;
|
||||
|
||||
if (ancount == 0)
|
||||
- return NSS_STATUS_NOTFOUND;
|
||||
+ {
|
||||
+ *h_errnop = HOST_NOT_FOUND;
|
||||
+ return NSS_STATUS_NOTFOUND;
|
||||
+ }
|
||||
|
||||
while (ancount-- > 0 && cp < end_of_message && had_error == 0)
|
||||
{
|
||||
@@ -1208,7 +1211,14 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
|
||||
/* Special case here: if the resolver sent a result but it only
|
||||
contains a CNAME while we are looking for a T_A or T_AAAA record,
|
||||
we fail with NOTFOUND instead of TRYAGAIN. */
|
||||
- return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
|
||||
+ if (canon != NULL)
|
||||
+ {
|
||||
+ *h_errnop = HOST_NOT_FOUND;
|
||||
+ return NSS_STATUS_NOTFOUND;
|
||||
+ }
|
||||
+
|
||||
+ *h_errnop = NETDB_INTERNAL;
|
||||
+ return NSS_STATUS_TRYAGAIN;
|
||||
}
|
||||
|
||||
|
||||
@@ -1222,11 +1232,101 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2,
|
||||
|
||||
enum nss_status status = NSS_STATUS_NOTFOUND;
|
||||
|
||||
+ /* Combining the NSS status of two distinct queries requires some
|
||||
+ compromise and attention to symmetry (A or AAAA queries can be
|
||||
+ returned in any order). What follows is a breakdown of how this
|
||||
+ code is expected to work and why. We discuss only SUCCESS,
|
||||
+ TRYAGAIN, NOTFOUND and UNAVAIL, since they are the only returns
|
||||
+ that apply (though RETURN and MERGE exist). We make a distinction
|
||||
+ between TRYAGAIN (recoverable) and TRYAGAIN' (not-recoverable).
|
||||
+ A recoverable TRYAGAIN is almost always due to buffer size issues
|
||||
+ and returns ERANGE in errno and the caller is expected to retry
|
||||
+ with a larger buffer.
|
||||
+
|
||||
+ Lastly, you may be tempted to make significant changes to the
|
||||
+ conditions in this code to bring about symmetry between responses.
|
||||
+ Please don't change anything without due consideration for
|
||||
+ expected application behaviour. Some of the synthesized responses
|
||||
+ aren't very well thought out and sometimes appear to imply that
|
||||
+ IPv4 responses are always answer 1, and IPv6 responses are always
|
||||
+ answer 2, but that's not true (see the implementation of send_dg
|
||||
+ and send_vc to see response can arrive in any order, particularly
|
||||
+ for UDP). However, we expect it holds roughly enough of the time
|
||||
+ that this code works, but certainly needs to be fixed to make this
|
||||
+ a more robust implementation.
|
||||
+
|
||||
+ ----------------------------------------------
|
||||
+ | Answer 1 Status / | Synthesized | Reason |
|
||||
+ | Answer 2 Status | Status | |
|
||||
+ |--------------------------------------------|
|
||||
+ | SUCCESS/SUCCESS | SUCCESS | [1] |
|
||||
+ | SUCCESS/TRYAGAIN | TRYAGAIN | [5] |
|
||||
+ | SUCCESS/TRYAGAIN' | SUCCESS | [1] |
|
||||
+ | SUCCESS/NOTFOUND | SUCCESS | [1] |
|
||||
+ | SUCCESS/UNAVAIL | SUCCESS | [1] |
|
||||
+ | TRYAGAIN/SUCCESS | TRYAGAIN | [2] |
|
||||
+ | TRYAGAIN/TRYAGAIN | TRYAGAIN | [2] |
|
||||
+ | TRYAGAIN/TRYAGAIN' | TRYAGAIN | [2] |
|
||||
+ | TRYAGAIN/NOTFOUND | TRYAGAIN | [2] |
|
||||
+ | TRYAGAIN/UNAVAIL | TRYAGAIN | [2] |
|
||||
+ | TRYAGAIN'/SUCCESS | SUCCESS | [3] |
|
||||
+ | TRYAGAIN'/TRYAGAIN | TRYAGAIN | [3] |
|
||||
+ | TRYAGAIN'/TRYAGAIN' | TRYAGAIN' | [3] |
|
||||
+ | TRYAGAIN'/NOTFOUND | TRYAGAIN' | [3] |
|
||||
+ | TRYAGAIN'/UNAVAIL | UNAVAIL | [3] |
|
||||
+ | NOTFOUND/SUCCESS | SUCCESS | [3] |
|
||||
+ | NOTFOUND/TRYAGAIN | TRYAGAIN | [3] |
|
||||
+ | NOTFOUND/TRYAGAIN' | TRYAGAIN' | [3] |
|
||||
+ | NOTFOUND/NOTFOUND | NOTFOUND | [3] |
|
||||
+ | NOTFOUND/UNAVAIL | UNAVAIL | [3] |
|
||||
+ | UNAVAIL/SUCCESS | UNAVAIL | [4] |
|
||||
+ | UNAVAIL/TRYAGAIN | UNAVAIL | [4] |
|
||||
+ | UNAVAIL/TRYAGAIN' | UNAVAIL | [4] |
|
||||
+ | UNAVAIL/NOTFOUND | UNAVAIL | [4] |
|
||||
+ | UNAVAIL/UNAVAIL | UNAVAIL | [4] |
|
||||
+ ----------------------------------------------
|
||||
+
|
||||
+ [1] If the first response is a success we return success.
|
||||
+ This ignores the state of the second answer and in fact
|
||||
+ incorrectly sets errno and h_errno to that of the second
|
||||
+ answer. However because the response is a success we ignore
|
||||
+ *errnop and *h_errnop (though that means you touched errno on
|
||||
+ success). We are being conservative here and returning the
|
||||
+ likely IPv4 response in the first answer as a success.
|
||||
+
|
||||
+ [2] If the first response is a recoverable TRYAGAIN we return
|
||||
+ that instead of looking at the second response. The
|
||||
+ expectation here is that we have failed to get an IPv4 response
|
||||
+ and should retry both queries.
|
||||
+
|
||||
+ [3] If the first response was not a SUCCESS and the second
|
||||
+ response is not NOTFOUND (had a SUCCESS, need to TRYAGAIN,
|
||||
+ or failed entirely e.g. TRYAGAIN' and UNAVAIL) then use the
|
||||
+ result from the second response, otherwise the first responses
|
||||
+ status is used. Again we have some odd side-effects when the
|
||||
+ second response is NOTFOUND because we overwrite *errnop and
|
||||
+ *h_errnop that means that a first answer of NOTFOUND might see
|
||||
+ its *errnop and *h_errnop values altered. Whether it matters
|
||||
+ in practice that a first response NOTFOUND has the wrong
|
||||
+ *errnop and *h_errnop is undecided.
|
||||
+
|
||||
+ [4] If the first response is UNAVAIL we return that instead of
|
||||
+ looking at the second response. The expectation here is that
|
||||
+ it will have failed similarly e.g. configuration failure.
|
||||
+
|
||||
+ [5] Testing this code is complicated by the fact that truncated
|
||||
+ second response buffers might be returned as SUCCESS if the
|
||||
+ first answer is a SUCCESS. To fix this we add symmetry to
|
||||
+ TRYAGAIN with the second response. If the second response
|
||||
+ is a recoverable error we now return TRYAGIN even if the first
|
||||
+ response was SUCCESS. */
|
||||
+
|
||||
if (anslen1 > 0)
|
||||
status = gaih_getanswer_slice(answer1, anslen1, qname,
|
||||
&pat, &buffer, &buflen,
|
||||
errnop, h_errnop, ttlp,
|
||||
&first);
|
||||
+
|
||||
if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND
|
||||
|| (status == NSS_STATUS_TRYAGAIN
|
||||
/* We want to look at the second answer in case of an
|
||||
@@ -1242,8 +1342,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2,
|
||||
&pat, &buffer, &buflen,
|
||||
errnop, h_errnop, ttlp,
|
||||
&first);
|
||||
+ /* Use the second response status in some cases. */
|
||||
if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND)
|
||||
status = status2;
|
||||
+ /* Do not return a truncated second response (unless it was
|
||||
+ unavoidable e.g. unrecoverable TRYAGAIN). */
|
||||
+ if (status == NSS_STATUS_SUCCESS
|
||||
+ && (status2 == NSS_STATUS_TRYAGAIN
|
||||
+ && *errnop == ERANGE && *h_errnop != NO_RECOVERY))
|
||||
+ status = NSS_STATUS_TRYAGAIN;
|
||||
}
|
||||
|
||||
return status;
|
||||
diff --git a/resolv/res_query.c b/resolv/res_query.c
|
||||
index 4a9b3b3..95470a9 100644
|
||||
--- a/resolv/res_query.c
|
||||
+++ b/resolv/res_query.c
|
||||
@@ -396,6 +396,7 @@ __libc_res_nsearch(res_state statp,
|
||||
{
|
||||
free (*answerp2);
|
||||
*answerp2 = NULL;
|
||||
+ *nanswerp2 = 0;
|
||||
*answerp2_malloced = 0;
|
||||
}
|
||||
}
|
||||
@@ -447,6 +448,7 @@ __libc_res_nsearch(res_state statp,
|
||||
{
|
||||
free (*answerp2);
|
||||
*answerp2 = NULL;
|
||||
+ *nanswerp2 = 0;
|
||||
*answerp2_malloced = 0;
|
||||
}
|
||||
|
||||
@@ -521,6 +523,7 @@ __libc_res_nsearch(res_state statp,
|
||||
{
|
||||
free (*answerp2);
|
||||
*answerp2 = NULL;
|
||||
+ *nanswerp2 = 0;
|
||||
*answerp2_malloced = 0;
|
||||
}
|
||||
if (saved_herrno != -1)
|
||||
diff --git a/resolv/res_send.c b/resolv/res_send.c
|
||||
index a968b95..25c19f1 100644
|
||||
--- a/resolv/res_send.c
|
||||
+++ b/resolv/res_send.c
|
||||
@@ -1,3 +1,20 @@
|
||||
+/* Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
+ This file is part of the GNU C Library.
|
||||
+
|
||||
+ The GNU C Library is free software; you can redistribute it and/or
|
||||
+ modify it under the terms of the GNU Lesser General Public
|
||||
+ License as published by the Free Software Foundation; either
|
||||
+ version 2.1 of the License, or (at your option) any later version.
|
||||
+
|
||||
+ The GNU C Library 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
|
||||
+ Lesser General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU Lesser General Public
|
||||
+ License along with the GNU C Library; if not, see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
/*
|
||||
* Copyright (c) 1985, 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
@@ -355,6 +372,8 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
|
||||
#ifdef USE_HOOKS
|
||||
if (__glibc_unlikely (statp->qhook || statp->rhook)) {
|
||||
if (anssiz < MAXPACKET && ansp) {
|
||||
+ /* Always allocate MAXPACKET, callers expect
|
||||
+ this specific size. */
|
||||
u_char *buf = malloc (MAXPACKET);
|
||||
if (buf == NULL)
|
||||
return (-1);
|
||||
@@ -630,6 +649,77 @@ get_nsaddr (res_state statp, int n)
|
||||
return (struct sockaddr *) (void *) &statp->nsaddr_list[n];
|
||||
}
|
||||
|
||||
+/* The send_vc function is responsible for sending a DNS query over TCP
|
||||
+ to the nameserver numbered NS from the res_state STATP i.e.
|
||||
+ EXT(statp).nssocks[ns]. The function supports sending both IPv4 and
|
||||
+ IPv6 queries at the same serially on the same socket.
|
||||
+
|
||||
+ Please note that for TCP there is no way to disable sending both
|
||||
+ queries, unlike UDP, which honours RES_SNGLKUP and RES_SNGLKUPREOP
|
||||
+ and sends the queries serially and waits for the result after each
|
||||
+ sent query. This implemetnation should be corrected to honour these
|
||||
+ options.
|
||||
+
|
||||
+ Please also note that for TCP we send both queries over the same
|
||||
+ socket one after another. This technically violates best practice
|
||||
+ since the server is allowed to read the first query, respond, and
|
||||
+ then close the socket (to service another client). If the server
|
||||
+ does this, then the remaining second query in the socket data buffer
|
||||
+ will cause the server to send the client an RST which will arrive
|
||||
+ asynchronously and the client's OS will likely tear down the socket
|
||||
+ receive buffer resulting in a potentially short read and lost
|
||||
+ response data. This will force the client to retry the query again,
|
||||
+ and this process may repeat until all servers and connection resets
|
||||
+ are exhausted and then the query will fail. It's not known if this
|
||||
+ happens with any frequency in real DNS server implementations. This
|
||||
+ implementation should be corrected to use two sockets by default for
|
||||
+ parallel queries.
|
||||
+
|
||||
+ The query stored in BUF of BUFLEN length is sent first followed by
|
||||
+ the query stored in BUF2 of BUFLEN2 length. Queries are sent
|
||||
+ serially on the same socket.
|
||||
+
|
||||
+ Answers to the query are stored firstly in *ANSP up to a max of
|
||||
+ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP
|
||||
+ is non-NULL (to indicate that modifying the answer buffer is allowed)
|
||||
+ then malloc is used to allocate a new response buffer and ANSCP and
|
||||
+ ANSP will both point to the new buffer. If more than *ANSSIZP bytes
|
||||
+ are needed but ANSCP is NULL, then as much of the response as
|
||||
+ possible is read into the buffer, but the results will be truncated.
|
||||
+ When truncation happens because of a small answer buffer the DNS
|
||||
+ packets header field TC will bet set to 1, indicating a truncated
|
||||
+ message and the rest of the socket data will be read and discarded.
|
||||
+
|
||||
+ Answers to the query are stored secondly in *ANSP2 up to a max of
|
||||
+ *ANSSIZP2 bytes, with the actual response length stored in
|
||||
+ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2
|
||||
+ is non-NULL (required for a second query) then malloc is used to
|
||||
+ allocate a new response buffer, *ANSSIZP2 is set to the new buffer
|
||||
+ size and *ANSP2_MALLOCED is set to 1.
|
||||
+
|
||||
+ The ANSP2_MALLOCED argument will eventually be removed as the
|
||||
+ change in buffer pointer can be used to detect the buffer has
|
||||
+ changed and that the caller should use free on the new buffer.
|
||||
+
|
||||
+ Note that the answers may arrive in any order from the server and
|
||||
+ therefore the first and second answer buffers may not correspond to
|
||||
+ the first and second queries.
|
||||
+
|
||||
+ It is not supported to call this function with a non-NULL ANSP2
|
||||
+ but a NULL ANSCP. Put another way, you can call send_vc with a
|
||||
+ single unmodifiable buffer or two modifiable buffers, but no other
|
||||
+ combination is supported.
|
||||
+
|
||||
+ It is the caller's responsibility to free the malloc allocated
|
||||
+ buffers by detecting that the pointers have changed from their
|
||||
+ original values i.e. *ANSCP or *ANSP2 has changed.
|
||||
+
|
||||
+ If errors are encountered then *TERRNO is set to an appropriate
|
||||
+ errno value and a zero result is returned for a recoverable error,
|
||||
+ and a less-than zero result is returned for a non-recoverable error.
|
||||
+
|
||||
+ If no errors are encountered then *TERRNO is left unmodified and
|
||||
+ a the length of the first response in bytes is returned. */
|
||||
static int
|
||||
send_vc(res_state statp,
|
||||
const u_char *buf, int buflen, const u_char *buf2, int buflen2,
|
||||
@@ -639,11 +729,7 @@ send_vc(res_state statp,
|
||||
{
|
||||
const HEADER *hp = (HEADER *) buf;
|
||||
const HEADER *hp2 = (HEADER *) buf2;
|
||||
- u_char *ans = *ansp;
|
||||
- int orig_anssizp = *anssizp;
|
||||
- // XXX REMOVE
|
||||
- // int anssiz = *anssizp;
|
||||
- HEADER *anhp = (HEADER *) ans;
|
||||
+ HEADER *anhp = (HEADER *) *ansp;
|
||||
struct sockaddr *nsap = get_nsaddr (statp, ns);
|
||||
int truncating, connreset, n;
|
||||
/* On some architectures compiler might emit a warning indicating
|
||||
@@ -731,6 +817,8 @@ send_vc(res_state statp,
|
||||
* Receive length & response
|
||||
*/
|
||||
int recvresp1 = 0;
|
||||
+ /* Skip the second response if there is no second query.
|
||||
+ To do that we mark the second response as received. */
|
||||
int recvresp2 = buf2 == NULL;
|
||||
uint16_t rlen16;
|
||||
read_len:
|
||||
@@ -767,40 +855,14 @@ send_vc(res_state statp,
|
||||
u_char **thisansp;
|
||||
int *thisresplenp;
|
||||
if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) {
|
||||
+ /* We have not received any responses
|
||||
+ yet or we only have one response to
|
||||
+ receive. */
|
||||
thisanssizp = anssizp;
|
||||
thisansp = anscp ?: ansp;
|
||||
assert (anscp != NULL || ansp2 == NULL);
|
||||
thisresplenp = &resplen;
|
||||
} else {
|
||||
- if (*anssizp != MAXPACKET) {
|
||||
- /* No buffer allocated for the first
|
||||
- reply. We can try to use the rest
|
||||
- of the user-provided buffer. */
|
||||
-#if __GNUC_PREREQ (4, 7)
|
||||
- DIAG_PUSH_NEEDS_COMMENT;
|
||||
- DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
|
||||
-#endif
|
||||
-#if _STRING_ARCH_unaligned
|
||||
- *anssizp2 = orig_anssizp - resplen;
|
||||
- *ansp2 = *ansp + resplen;
|
||||
-#else
|
||||
- int aligned_resplen
|
||||
- = ((resplen + __alignof__ (HEADER) - 1)
|
||||
- & ~(__alignof__ (HEADER) - 1));
|
||||
- *anssizp2 = orig_anssizp - aligned_resplen;
|
||||
- *ansp2 = *ansp + aligned_resplen;
|
||||
-#endif
|
||||
-#if __GNUC_PREREQ (4, 7)
|
||||
- DIAG_POP_NEEDS_COMMENT;
|
||||
-#endif
|
||||
- } else {
|
||||
- /* The first reply did not fit into the
|
||||
- user-provided buffer. Maybe the second
|
||||
- answer will. */
|
||||
- *anssizp2 = orig_anssizp;
|
||||
- *ansp2 = *ansp;
|
||||
- }
|
||||
-
|
||||
thisanssizp = anssizp2;
|
||||
thisansp = ansp2;
|
||||
thisresplenp = resplen2;
|
||||
@@ -804,10 +870,14 @@ send_vc(res_state statp,
|
||||
anhp = (HEADER *) *thisansp;
|
||||
|
||||
*thisresplenp = rlen;
|
||||
- if (rlen > *thisanssizp) {
|
||||
- /* Yes, we test ANSCP here. If we have two buffers
|
||||
- both will be allocatable. */
|
||||
- if (__glibc_likely (anscp != NULL)) {
|
||||
+ /* Is the answer buffer too small? */
|
||||
+ if (*thisanssizp < rlen) {
|
||||
+ /* If the current buffer is not the the static
|
||||
+ user-supplied buffer then we can reallocate
|
||||
+ it. */
|
||||
+ if (thisansp != NULL && thisansp != ansp) {
|
||||
+ /* Always allocate MAXPACKET, callers expect
|
||||
+ this specific size. */
|
||||
u_char *newp = malloc (MAXPACKET);
|
||||
if (newp == NULL) {
|
||||
*terrno = ENOMEM;
|
||||
@@ -819,6 +889,9 @@ send_vc(res_state statp,
|
||||
if (thisansp == ansp2)
|
||||
*ansp2_malloced = 1;
|
||||
anhp = (HEADER *) newp;
|
||||
+ /* A uint16_t can't be larger than MAXPACKET
|
||||
+ thus it's safe to allocate MAXPACKET but
|
||||
+ read RLEN bytes instead. */
|
||||
len = rlen;
|
||||
} else {
|
||||
Dprint(statp->options & RES_DEBUG,
|
||||
@@ -948,6 +1021,66 @@ reopen (res_state statp, int *terrno, int ns)
|
||||
return 1;
|
||||
}
|
||||
|
||||
+/* The send_dg function is responsible for sending a DNS query over UDP
|
||||
+ to the nameserver numbered NS from the res_state STATP i.e.
|
||||
+ EXT(statp).nssocks[ns]. The function supports IPv4 and IPv6 queries
|
||||
+ along with the ability to send the query in parallel for both stacks
|
||||
+ (default) or serially (RES_SINGLKUP). It also supports serial lookup
|
||||
+ with a close and reopen of the socket used to talk to the server
|
||||
+ (RES_SNGLKUPREOP) to work around broken name servers.
|
||||
+
|
||||
+ The query stored in BUF of BUFLEN length is sent first followed by
|
||||
+ the query stored in BUF2 of BUFLEN2 length. Queries are sent
|
||||
+ in parallel (default) or serially (RES_SINGLKUP or RES_SNGLKUPREOP).
|
||||
+
|
||||
+ Answers to the query are stored firstly in *ANSP up to a max of
|
||||
+ *ANSSIZP bytes. If more than *ANSSIZP bytes are needed and ANSCP
|
||||
+ is non-NULL (to indicate that modifying the answer buffer is allowed)
|
||||
+ then malloc is used to allocate a new response buffer and ANSCP and
|
||||
+ ANSP will both point to the new buffer. If more than *ANSSIZP bytes
|
||||
+ are needed but ANSCP is NULL, then as much of the response as
|
||||
+ possible is read into the buffer, but the results will be truncated.
|
||||
+ When truncation happens because of a small answer buffer the DNS
|
||||
+ packets header field TC will bet set to 1, indicating a truncated
|
||||
+ message, while the rest of the UDP packet is discarded.
|
||||
+
|
||||
+ Answers to the query are stored secondly in *ANSP2 up to a max of
|
||||
+ *ANSSIZP2 bytes, with the actual response length stored in
|
||||
+ *RESPLEN2. If more than *ANSSIZP bytes are needed and ANSP2
|
||||
+ is non-NULL (required for a second query) then malloc is used to
|
||||
+ allocate a new response buffer, *ANSSIZP2 is set to the new buffer
|
||||
+ size and *ANSP2_MALLOCED is set to 1.
|
||||
+
|
||||
+ The ANSP2_MALLOCED argument will eventually be removed as the
|
||||
+ change in buffer pointer can be used to detect the buffer has
|
||||
+ changed and that the caller should use free on the new buffer.
|
||||
+
|
||||
+ Note that the answers may arrive in any order from the server and
|
||||
+ therefore the first and second answer buffers may not correspond to
|
||||
+ the first and second queries.
|
||||
+
|
||||
+ It is not supported to call this function with a non-NULL ANSP2
|
||||
+ but a NULL ANSCP. Put another way, you can call send_vc with a
|
||||
+ single unmodifiable buffer or two modifiable buffers, but no other
|
||||
+ combination is supported.
|
||||
+
|
||||
+ It is the caller's responsibility to free the malloc allocated
|
||||
+ buffers by detecting that the pointers have changed from their
|
||||
+ original values i.e. *ANSCP or *ANSP2 has changed.
|
||||
+
|
||||
+ If an answer is truncated because of UDP datagram DNS limits then
|
||||
+ *V_CIRCUIT is set to 1 and the return value non-zero to indicate to
|
||||
+ the caller to retry with TCP. The value *GOTSOMEWHERE is set to 1
|
||||
+ if any progress was made reading a response from the nameserver and
|
||||
+ is used by the caller to distinguish between ECONNREFUSED and
|
||||
+ ETIMEDOUT (the latter if *GOTSOMEWHERE is 1).
|
||||
+
|
||||
+ If errors are encountered then *TERRNO is set to an appropriate
|
||||
+ errno value and a zero result is returned for a recoverable error,
|
||||
+ and a less-than zero result is returned for a non-recoverable error.
|
||||
+
|
||||
+ If no errors are encountered then *TERRNO is left unmodified and
|
||||
+ a the length of the first response in bytes is returned. */
|
||||
static int
|
||||
send_dg(res_state statp,
|
||||
const u_char *buf, int buflen, const u_char *buf2, int buflen2,
|
||||
@@ -957,8 +1090,6 @@ send_dg(res_state statp,
|
||||
{
|
||||
const HEADER *hp = (HEADER *) buf;
|
||||
const HEADER *hp2 = (HEADER *) buf2;
|
||||
- u_char *ans = *ansp;
|
||||
- int orig_anssizp = *anssizp;
|
||||
struct timespec now, timeout, finish;
|
||||
struct pollfd pfd[1];
|
||||
int ptimeout;
|
||||
@@ -991,6 +1122,8 @@ send_dg(res_state statp,
|
||||
int need_recompute = 0;
|
||||
int nwritten = 0;
|
||||
int recvresp1 = 0;
|
||||
+ /* Skip the second response if there is no second query.
|
||||
+ To do that we mark the second response as received. */
|
||||
int recvresp2 = buf2 == NULL;
|
||||
pfd[0].fd = EXT(statp).nssocks[ns];
|
||||
pfd[0].events = POLLOUT;
|
||||
@@ -1154,55 +1287,56 @@ send_dg(res_state statp,
|
||||
int *thisresplenp;
|
||||
|
||||
if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) {
|
||||
+ /* We have not received any responses
|
||||
+ yet or we only have one response to
|
||||
+ receive. */
|
||||
thisanssizp = anssizp;
|
||||
thisansp = anscp ?: ansp;
|
||||
assert (anscp != NULL || ansp2 == NULL);
|
||||
thisresplenp = &resplen;
|
||||
} else {
|
||||
- if (*anssizp != MAXPACKET) {
|
||||
- /* No buffer allocated for the first
|
||||
- reply. We can try to use the rest
|
||||
- of the user-provided buffer. */
|
||||
-#if _STRING_ARCH_unaligned
|
||||
- *anssizp2 = orig_anssizp - resplen;
|
||||
- *ansp2 = *ansp + resplen;
|
||||
-#else
|
||||
- int aligned_resplen
|
||||
- = ((resplen + __alignof__ (HEADER) - 1)
|
||||
- & ~(__alignof__ (HEADER) - 1));
|
||||
- *anssizp2 = orig_anssizp - aligned_resplen;
|
||||
- *ansp2 = *ansp + aligned_resplen;
|
||||
-#endif
|
||||
- } else {
|
||||
- /* The first reply did not fit into the
|
||||
- user-provided buffer. Maybe the second
|
||||
- answer will. */
|
||||
- *anssizp2 = orig_anssizp;
|
||||
- *ansp2 = *ansp;
|
||||
- }
|
||||
-
|
||||
thisanssizp = anssizp2;
|
||||
thisansp = ansp2;
|
||||
thisresplenp = resplen2;
|
||||
}
|
||||
|
||||
if (*thisanssizp < MAXPACKET
|
||||
- /* Yes, we test ANSCP here. If we have two buffers
|
||||
- both will be allocatable. */
|
||||
- && anscp
|
||||
+ /* If the current buffer is not the the static
|
||||
+ user-supplied buffer then we can reallocate
|
||||
+ it. */
|
||||
+ && (thisansp != NULL && thisansp != ansp)
|
||||
#ifdef FIONREAD
|
||||
+ /* Is the size too small? */
|
||||
&& (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
|
||||
|| *thisanssizp < *thisresplenp)
|
||||
#endif
|
||||
) {
|
||||
+ /* Always allocate MAXPACKET, callers expect
|
||||
+ this specific size. */
|
||||
u_char *newp = malloc (MAXPACKET);
|
||||
if (newp != NULL) {
|
||||
- *anssizp = MAXPACKET;
|
||||
- *thisansp = ans = newp;
|
||||
+ *thisanssizp = MAXPACKET;
|
||||
+ *thisansp = newp;
|
||||
if (thisansp == ansp2)
|
||||
*ansp2_malloced = 1;
|
||||
}
|
||||
}
|
||||
+ /* We could end up with truncation if anscp was NULL
|
||||
+ (not allowed to change caller's buffer) and the
|
||||
+ response buffer size is too small. This isn't a
|
||||
+ reliable way to detect truncation because the ioctl
|
||||
+ may be an inaccurate report of the UDP message size.
|
||||
+ Therefore we use this only to issue debug output.
|
||||
+ To do truncation accurately with UDP we need
|
||||
+ MSG_TRUNC which is only available on Linux. We
|
||||
+ can abstract out the Linux-specific feature in the
|
||||
+ future to detect truncation. */
|
||||
+ if (__glibc_unlikely (*thisanssizp < *thisresplenp)) {
|
||||
+ Dprint(statp->options & RES_DEBUG,
|
||||
+ (stdout, ";; response may be truncated (UDP)\n")
|
||||
+ );
|
||||
+ }
|
||||
+
|
||||
HEADER *anhp = (HEADER *) *thisansp;
|
||||
socklen_t fromlen = sizeof(struct sockaddr_in6);
|
||||
assert (sizeof(from) <= fromlen);
|
||||
--
|
||||
1.9.4
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,8 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gmp"
|
||||
PKG_VERSION="6.0.0a"
|
||||
PKG_SOURCE_DIR="$PKG_NAME-6.0.0"
|
||||
PKG_VERSION="6.1.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPLv3+"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="intltool"
|
||||
PKG_VERSION="0.50.2"
|
||||
PKG_VERSION="0.51.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2010-2011 Roman Weber (roman@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2010-2011 Roman Weber (roman@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -17,12 +17,13 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libcec"
|
||||
PKG_VERSION="3.0.0"
|
||||
PKG_VERSION="3.0.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://libcec.pulse-eight.com/"
|
||||
PKG_URL="http://mirrors.xbmc.org/build-deps/sources/$PKG_NAME-$PKG_VERSION-6.tar.gz"
|
||||
PKG_URL="https://github.com/Pulse-Eight/libcec/archive/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_SOURCE_DIR="$PKG_NAME-$PKG_NAME-$PKG_VERSION"
|
||||
PKG_DEPENDS_TARGET="toolchain systemd lockdev platform"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="system"
|
||||
@@ -37,9 +38,15 @@ if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
|
||||
fi
|
||||
|
||||
if [ "$KODIPLAYER_DRIVER" = "libfslvpuwrap" ]; then
|
||||
EXTRA_CMAKE_OPTS="-DHAVE_IMX_API=1"
|
||||
EXTRA_CMAKE_OPTS="$EXTRA_CMAKE_OPTS -DHAVE_IMX_API=1"
|
||||
else
|
||||
EXTRA_CMAKE_OPTS="-DHAVE_IMX_API=0"
|
||||
EXTRA_CMAKE_OPTS="$EXTRA_CMAKE_OPTS -DHAVE_IMX_API=0"
|
||||
fi
|
||||
|
||||
if [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then
|
||||
EXTRA_CMAKE_OPTS="$EXTRA_CMAKE_OPTS -DHAVE_AMLOGIC_API=1"
|
||||
else
|
||||
EXTRA_CMAKE_OPTS="$EXTRA_CMAKE_OPTS -DHAVE_AMLOGIC_API=0"
|
||||
fi
|
||||
|
||||
configure_target() {
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# see upstream commit, https://github.com/Pulse-Eight/libcec/commit/678739a0d8aa5897fa1906a8fdeeb67b83f7d1e9
|
||||
|
||||
diff -Naur a/src/libcec/platform/drm/drm-edid.cpp b/src/libcec/platform/drm/drm-edid.cpp
|
||||
--- a/src/libcec/platform/drm/drm-edid.cpp 2015-07-03 10:20:49.000000000 -0700
|
||||
+++ b/src/libcec/platform/drm/drm-edid.cpp 2015-11-10 13:09:14.902629922 -0800
|
||||
@@ -51,6 +51,12 @@
|
||||
|
||||
DIR *dir = opendir(baseDir.c_str());
|
||||
|
||||
+ // DRM subfolder may not exist on some systems
|
||||
+ if (dir == NULL)
|
||||
+ {
|
||||
+ return iPA;
|
||||
+ }
|
||||
+
|
||||
struct dirent *entry = readdir(dir);
|
||||
std::string enablededid;
|
||||
std::string line;
|
||||
733
packages/devel/libcec/patches/libcec-03-amlogic-support.patch
Normal file
@@ -0,0 +1,733 @@
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/include/cectypes.h libcec-3.0.1-with-amlogic-adapter/include/cectypes.h
|
||||
--- libcec-3.0.1/include/cectypes.h 2016-02-21 01:11:20.791177759 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/include/cectypes.h 2016-02-10 13:45:19.057046951 +0100
|
||||
@@ -320,6 +320,16 @@
|
||||
|
||||
|
||||
/*!
|
||||
+ * the path to use for the Amlogic HDMI CEC device
|
||||
+ */
|
||||
+#define CEC_AMLOGIC_PATH "/dev/AmlogicCEC"
|
||||
+
|
||||
+/*!
|
||||
+ * the name of the virtual COM port to use for the AMLOGIC' CEC wire
|
||||
+ */
|
||||
+#define CEC_AMLOGIC_VIRTUAL_COM "Amlogic"
|
||||
+
|
||||
+/*!
|
||||
* Mimimum client version
|
||||
*/
|
||||
#define CEC_MIN_LIB_VERSION 3
|
||||
@@ -888,7 +898,8 @@
|
||||
ADAPTERTYPE_RPI = 0x100,
|
||||
ADAPTERTYPE_TDA995x = 0x200,
|
||||
ADAPTERTYPE_EXYNOS = 0x300,
|
||||
- ADAPTERTYPE_IMX = 0x400
|
||||
+ ADAPTERTYPE_IMX = 0x400,
|
||||
+ ADAPTERTYPE_AMLOGIC = 0x500
|
||||
} cec_adapter_type;
|
||||
|
||||
/** force exporting through swig */
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/README.md libcec-3.0.1-with-amlogic-adapter/README.md
|
||||
--- libcec-3.0.1/README.md 2015-07-03 19:20:49.000000000 +0200
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/README.md 2016-02-10 12:03:54.517523977 +0100
|
||||
@@ -58,6 +58,12 @@
|
||||
cmake -DHAVE_EXYNOS_API=1 ..
|
||||
```
|
||||
|
||||
+### Amlogic
|
||||
+To compile in support for Amlogic devices, you have to pass the argument -DHAVE_AMLOGIC_API=1 to cmake:
|
||||
+```
|
||||
+cmake -DHAVE_AMLOGIC_API=1 ..
|
||||
+```
|
||||
+
|
||||
## TDA995x ##
|
||||
To compile in support for TDA995x devices, you have to pass the argument -DHAVE_TDA995X_API=1 to cmake:
|
||||
```
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/adapter/AdapterFactory.cpp libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/AdapterFactory.cpp
|
||||
--- libcec-3.0.1/src/libcec/adapter/AdapterFactory.cpp 2016-02-21 01:11:12.579266950 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/AdapterFactory.cpp 2016-02-10 12:41:44.252060917 +0100
|
||||
@@ -63,6 +63,11 @@
|
||||
#include "IMX/IMXCECAdapterCommunication.h"
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
+#include "Amlogic/AmlogicCECAdapterDetection.h"
|
||||
+#include "Amlogic/AmlogicCECAdapterCommunication.h"
|
||||
+#endif
|
||||
+
|
||||
using namespace CEC;
|
||||
|
||||
int8_t CAdapterFactory::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */)
|
||||
@@ -131,6 +136,18 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
+ if (iAdaptersFound < iBufSize && CAmlogicCECAdapterDetection::FindAdapter())
|
||||
+ {
|
||||
+ snprintf(deviceList[iAdaptersFound].strComPath, sizeof(deviceList[iAdaptersFound].strComPath), CEC_AMLOGIC_PATH);
|
||||
+ snprintf(deviceList[iAdaptersFound].strComName, sizeof(deviceList[iAdaptersFound].strComName), CEC_AMLOGIC_VIRTUAL_COM);
|
||||
+ deviceList[iAdaptersFound].iVendorId = 0;
|
||||
+ deviceList[iAdaptersFound].iProductId = 0;
|
||||
+ deviceList[iAdaptersFound].adapterType = ADAPTERTYPE_AMLOGIC;
|
||||
+ iAdaptersFound++;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
|
||||
|
||||
#if defined(HAVE_IMX_API)
|
||||
@@ -166,6 +183,11 @@
|
||||
return new CExynosCECAdapterCommunication(m_lib->m_cec);
|
||||
#endif
|
||||
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
+ if (!strcmp(strPort, CEC_AMLOGIC_VIRTUAL_COM))
|
||||
+ return new CAmlogicCECAdapterCommunication(m_lib->m_cec);
|
||||
+#endif
|
||||
+
|
||||
#if defined(HAVE_RPI_API)
|
||||
if (!strcmp(strPort, CEC_RPI_VIRTUAL_COM))
|
||||
return new CRPiCECAdapterCommunication(m_lib->m_cec);
|
||||
@@ -180,7 +202,7 @@
|
||||
return new CUSBCECAdapterCommunication(m_lib->m_cec, strPort, iBaudRate);
|
||||
#endif
|
||||
|
||||
-#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API) && !defined(HAVE_IMX_API)
|
||||
+#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API) && !defined(HAVE_IMX_API) && !defined(HAVE_AMLOGIC_API)
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.cpp libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.cpp
|
||||
--- libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.cpp 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.cpp 2016-02-28 12:31:26.771045268 +0100
|
||||
@@ -0,0 +1,298 @@
|
||||
+/*
|
||||
+ * This file is part of the libCEC(R) library.
|
||||
+ *
|
||||
+ * libCEC Amlogic Code Copyright (C) 2016 Gerald Dachs
|
||||
+ * based heavily on:
|
||||
+ * libCEC Exynos Code Copyright (C) 2014 Valentin Manea
|
||||
+ * libCEC(R) is Copyright (C) 2011-2015 Pulse-Eight Limited. All rights reserved.
|
||||
+ * libCEC(R) is an original work, containing original code.
|
||||
+ *
|
||||
+ * libCEC(R) is a trademark of Pulse-Eight Limited.
|
||||
+ *
|
||||
+ * This program is dual-licensed; 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.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+ *
|
||||
+ *
|
||||
+ * Alternatively, you can license this library under a commercial license,
|
||||
+ * please contact Pulse-Eight Licensing for more information.
|
||||
+ *
|
||||
+ * For more information contact:
|
||||
+ * Pulse-Eight Licensing <license@pulse-eight.com>
|
||||
+ * http://www.pulse-eight.com/
|
||||
+ * http://www.pulse-eight.net/
|
||||
+ */
|
||||
+
|
||||
+#include "env.h"
|
||||
+#include <fcntl.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+
|
||||
+
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
+#include "AmlogicCEC.h"
|
||||
+#include "AmlogicCECAdapterCommunication.h"
|
||||
+
|
||||
+#include "CECTypeUtils.h"
|
||||
+#include "LibCEC.h"
|
||||
+#include <platform/util/buffer.h>
|
||||
+
|
||||
+using namespace CEC;
|
||||
+using namespace PLATFORM;
|
||||
+
|
||||
+#define LIB_CEC m_callback->GetLib()
|
||||
+
|
||||
+
|
||||
+CAmlogicCECAdapterCommunication::CAmlogicCECAdapterCommunication(IAdapterCommunicationCallback *callback) :
|
||||
+ IAdapterCommunication(callback),
|
||||
+ m_bLogicalAddressChanged(false)
|
||||
+{
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ m_logicalAddresses.Clear();
|
||||
+ m_fd = INVALID_SOCKET_VALUE;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+CAmlogicCECAdapterCommunication::~CAmlogicCECAdapterCommunication(void)
|
||||
+{
|
||||
+ Close();
|
||||
+}
|
||||
+
|
||||
+
|
||||
+bool CAmlogicCECAdapterCommunication::IsOpen(void)
|
||||
+{
|
||||
+ CLockObject lock(m_mutex);
|
||||
+ return IsInitialised() && m_fd != INVALID_SOCKET_VALUE;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+bool CAmlogicCECAdapterCommunication::Open(uint32_t UNUSED(iTimeoutMs), bool UNUSED(bSkipChecks), bool bStartListening)
|
||||
+{
|
||||
+ if (IsOpen())
|
||||
+ Close();
|
||||
+
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ if ((m_fd = open(CEC_AMLOGIC_PATH, O_RDWR)) > 0)
|
||||
+ {
|
||||
+ if (!bStartListening || CreateThread()) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ close(m_fd);
|
||||
+ m_fd = INVALID_SOCKET_VALUE;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+void CAmlogicCECAdapterCommunication::Close(void)
|
||||
+{
|
||||
+ StopThread(0);
|
||||
+
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ close(m_fd);
|
||||
+ m_fd = INVALID_SOCKET_VALUE;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+std::string CAmlogicCECAdapterCommunication::GetError(void) const
|
||||
+{
|
||||
+ std::string strError(m_strError);
|
||||
+ return strError;
|
||||
+}
|
||||
+
|
||||
+int CAmlogicCECAdapterCommunication::getFileDescriptor(void)
|
||||
+{
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ return m_fd;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+
|
||||
+cec_adapter_message_state CAmlogicCECAdapterCommunication::Write(
|
||||
+ const cec_command &data, bool &UNUSED(bRetry), uint8_t UNUSED(iLineTimeout), bool UNUSED(bIsReply))
|
||||
+{
|
||||
+ uint8_t buffer[CEC_MAX_FRAME_SIZE];
|
||||
+ int32_t size = 1;
|
||||
+ cec_adapter_message_state rc = ADAPTER_MESSAGE_STATE_ERROR;
|
||||
+
|
||||
+ if (!IsOpen())
|
||||
+ return rc;
|
||||
+
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ if ((size_t)data.parameters.size + data.opcode_set > sizeof(buffer))
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: data size too large !", __func__);
|
||||
+ return ADAPTER_MESSAGE_STATE_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ buffer[0] = (data.initiator << 4) | (data.destination & 0x0f);
|
||||
+
|
||||
+ if (data.opcode_set)
|
||||
+ {
|
||||
+ buffer[1] = data.opcode;
|
||||
+ size++;
|
||||
+
|
||||
+ memcpy(&buffer[size], data.parameters.data, data.parameters.size);
|
||||
+ size += data.parameters.size;
|
||||
+ }
|
||||
+
|
||||
+ if (write(m_fd, (void *)buffer, size) == size)
|
||||
+ {
|
||||
+ rc = ADAPTER_MESSAGE_STATE_SENT_ACKED;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: write failed !", __func__);
|
||||
+ }
|
||||
+
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+uint16_t CAmlogicCECAdapterCommunication::GetFirmwareVersion(void)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+cec_vendor_id CAmlogicCECAdapterCommunication::GetVendorId(void)
|
||||
+{
|
||||
+ return cec_vendor_id(CEC_VENDOR_UNKNOWN);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+uint16_t CAmlogicCECAdapterCommunication::GetPhysicalAddress(void)
|
||||
+{
|
||||
+ int phys_addr = CEC_DEFAULT_PADDR;
|
||||
+
|
||||
+ if (!IsOpen())
|
||||
+ return (uint16_t)phys_addr;
|
||||
+
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ if ((phys_addr = ioctl(m_fd, CEC_IOC_GETPADDR)) < 0)
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: IOCTL GetPhysicalAddr failed !", __func__);
|
||||
+ phys_addr = CEC_DEFAULT_PADDR;
|
||||
+ }
|
||||
+ return (uint16_t)phys_addr;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+cec_logical_addresses CAmlogicCECAdapterCommunication::GetLogicalAddresses(void)
|
||||
+{
|
||||
+ return m_logicalAddresses;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+bool CAmlogicCECAdapterCommunication::SetLogicalAddresses(const cec_logical_addresses &addresses)
|
||||
+{
|
||||
+ unsigned int log_addr = addresses.primary;
|
||||
+ if (!IsOpen())
|
||||
+ return false;
|
||||
+
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ if (ioctl(m_fd, CEC_IOC_SETLADDR, &log_addr))
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: IOCTL SetLogicalAddr failed !", __func__);
|
||||
+ return false;
|
||||
+ }
|
||||
+ m_logicalAddresses = addresses;
|
||||
+ m_bLogicalAddressChanged = true;
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+void CAmlogicCECAdapterCommunication::HandleLogicalAddressLost(cec_logical_address UNUSED(oldAddress))
|
||||
+{
|
||||
+ unsigned int log_addr = CECDEVICE_BROADCAST;
|
||||
+
|
||||
+ if (!IsOpen())
|
||||
+ return;
|
||||
+
|
||||
+ CLockObject lock(m_mutex);
|
||||
+
|
||||
+ if (ioctl(m_fd, CEC_IOC_SETLADDR, &log_addr))
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: IOCTL SetLogicalAddr failed !", __func__);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+
|
||||
+void *CAmlogicCECAdapterCommunication::Process(void)
|
||||
+{
|
||||
+ uint8_t buffer[CEC_MAX_FRAME_SIZE];
|
||||
+ uint32_t size;
|
||||
+ fd_set rfds;
|
||||
+ cec_logical_address initiator, destination;
|
||||
+
|
||||
+ if (!IsOpen())
|
||||
+ return 0;
|
||||
+
|
||||
+ while (!IsStopped())
|
||||
+ {
|
||||
+ int fd = getFileDescriptor();
|
||||
+
|
||||
+ if (fd == INVALID_SOCKET_VALUE)
|
||||
+ {
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ FD_ZERO(&rfds);
|
||||
+ FD_SET(fd, &rfds);
|
||||
+
|
||||
+ if (select(fd + 1, &rfds, NULL, NULL, NULL) >= 0 )
|
||||
+ {
|
||||
+ size = read(fd, buffer, CEC_MAX_FRAME_SIZE);
|
||||
+
|
||||
+ if (size > 0)
|
||||
+ {
|
||||
+ if (buffer[0] == 0xff) // driver wants us to reread the physical address
|
||||
+ {
|
||||
+ if (!IsStopped())
|
||||
+ {
|
||||
+ uint16_t iNewAddress = GetPhysicalAddress();
|
||||
+ m_callback->HandlePhysicalAddressChanged(iNewAddress);
|
||||
+ }
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ initiator = cec_logical_address(buffer[0] >> 4);
|
||||
+ destination = cec_logical_address(buffer[0] & 0x0f);
|
||||
+
|
||||
+ cec_command cmd;
|
||||
+
|
||||
+ cec_command::Format(
|
||||
+ cmd, initiator, destination,
|
||||
+ ( size > 1 ) ? cec_opcode(buffer[1]) : CEC_OPCODE_NONE);
|
||||
+
|
||||
+ for( uint8_t i = 2; i < size; i++ )
|
||||
+ cmd.parameters.PushBack(buffer[i]);
|
||||
+
|
||||
+ if (!IsStopped())
|
||||
+ m_callback->OnCommandReceived(cmd);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+#endif // HAVE_AMLOGIC_API
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.h libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.h
|
||||
--- libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterCommunication.h 2016-02-28 12:16:30.985474428 +0100
|
||||
@@ -0,0 +1,105 @@
|
||||
+#pragma once
|
||||
+/*
|
||||
+ * This file is part of the libCEC(R) library.
|
||||
+ *
|
||||
+ * libCEC Amlogic Code Copyright (C) 2016 Gerald Dachs
|
||||
+ * based heavily on:
|
||||
+ * libCEC Exynos Code Copyright (C) 2014 Valentin Manea
|
||||
+ * libCEC(R) is Copyright (C) 2011-2015 Pulse-Eight Limited. All rights reserved.
|
||||
+ * libCEC(R) is an original work, containing original code.
|
||||
+ *
|
||||
+ * libCEC(R) is a trademark of Pulse-Eight Limited.
|
||||
+ *
|
||||
+ * This program is dual-licensed; 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.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+ *
|
||||
+ *
|
||||
+ * Alternatively, you can license this library under a commercial license,
|
||||
+ * please contact Pulse-Eight Licensing for more information.
|
||||
+ *
|
||||
+ * For more information contact:
|
||||
+ * Pulse-Eight Licensing <license@pulse-eight.com>
|
||||
+ * http://www.pulse-eight.com/
|
||||
+ * http://www.pulse-eight.net/
|
||||
+ */
|
||||
+
|
||||
+#include "env.h"
|
||||
+
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
+
|
||||
+#include <platform/threads/mutex.h>
|
||||
+#include <platform/threads/threads.h>
|
||||
+#include "../AdapterCommunication.h"
|
||||
+#include <map>
|
||||
+
|
||||
+namespace CEC
|
||||
+{
|
||||
+ class CAmlogicCECAdapterCommunication : public IAdapterCommunication, public PLATFORM::CThread
|
||||
+ {
|
||||
+ public:
|
||||
+ /*!
|
||||
+ * @brief Create a new Exynos HDMI CEC communication handler.
|
||||
+ * @param callback The callback to use for incoming CEC commands.
|
||||
+ */
|
||||
+ CAmlogicCECAdapterCommunication(IAdapterCommunicationCallback *callback);
|
||||
+ virtual ~CAmlogicCECAdapterCommunication(void);
|
||||
+
|
||||
+ /** @name IAdapterCommunication implementation */
|
||||
+ ///{
|
||||
+ bool Open(uint32_t iTimeoutMs = CEC_DEFAULT_CONNECT_TIMEOUT, bool bSkipChecks = false, bool bStartListening = true);
|
||||
+ void Close(void);
|
||||
+ bool IsOpen(void);
|
||||
+ std::string GetError(void) const;
|
||||
+ cec_adapter_message_state Write(const cec_command &data, bool &bRetry, uint8_t iLineTimeout, bool bIsReply);
|
||||
+
|
||||
+ bool SetLineTimeout(uint8_t UNUSED(iTimeout)) { return true; }
|
||||
+ bool StartBootloader(void) { return false; }
|
||||
+ bool SetLogicalAddresses(const cec_logical_addresses &addresses);
|
||||
+ cec_logical_addresses GetLogicalAddresses(void);
|
||||
+ bool PingAdapter(void) { return IsInitialised(); }
|
||||
+ uint16_t GetFirmwareVersion(void);
|
||||
+ uint32_t GetFirmwareBuildDate(void) { return 0; }
|
||||
+ bool IsRunningLatestFirmware(void) { return true; }
|
||||
+ bool PersistConfiguration(const libcec_configuration & UNUSED(configuration)) { return false; }
|
||||
+ bool GetConfiguration(libcec_configuration & UNUSED(configuration)) { return false; }
|
||||
+ std::string GetPortName(void) { return std::string("AMLOGIC"); }
|
||||
+ uint16_t GetPhysicalAddress(void);
|
||||
+ bool SetControlledMode(bool UNUSED(controlled)) { return true; }
|
||||
+ cec_vendor_id GetVendorId(void);
|
||||
+ bool SupportsSourceLogicalAddress(const cec_logical_address address) { return address > CECDEVICE_TV && address <= CECDEVICE_BROADCAST; }
|
||||
+ cec_adapter_type GetAdapterType(void) { return ADAPTERTYPE_AMLOGIC; }
|
||||
+ uint16_t GetAdapterVendorId(void) const { return 1; }
|
||||
+ uint16_t GetAdapterProductId(void) const { return 1; }
|
||||
+ void HandleLogicalAddressLost(cec_logical_address oldAddress);
|
||||
+ void SetActiveSource(bool UNUSED(bSetTo), bool UNUSED(bClientUnregistered)) {}
|
||||
+ ///}
|
||||
+
|
||||
+ /** @name PLATFORM::CThread implementation */
|
||||
+ ///{
|
||||
+ void *Process(void);
|
||||
+ ///}
|
||||
+
|
||||
+ private:
|
||||
+ bool IsInitialised(void) const { return 1; };
|
||||
+ int getFileDescriptor(void);
|
||||
+
|
||||
+ std::string m_strError; /**< current error message */
|
||||
+
|
||||
+ bool m_bLogicalAddressChanged;
|
||||
+ cec_logical_addresses m_logicalAddresses;
|
||||
+ PLATFORM::CMutex m_mutex;
|
||||
+ int m_fd;
|
||||
+ };
|
||||
+};
|
||||
+#endif
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.cpp libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.cpp
|
||||
--- libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.cpp 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.cpp 2016-02-10 11:57:58.445532459 +0100
|
||||
@@ -0,0 +1,50 @@
|
||||
+/*
|
||||
+ * This file is part of the libCEC(R) library.
|
||||
+ *
|
||||
+ * libCEC Amlogic Code Copyright (C) 2016 Gerald Dachs
|
||||
+ * based heavily on:
|
||||
+ * libCEC Exynos Code Copyright (C) 2014 Valentin Manea
|
||||
+ * libCEC(R) is Copyright (C) 2011-2015 Pulse-Eight Limited. All rights reserved.
|
||||
+ * libCEC(R) is an original work, containing original code.
|
||||
+ *
|
||||
+ * libCEC(R) is a trademark of Pulse-Eight Limited.
|
||||
+ *
|
||||
+ * This program is dual-licensed; 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.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+ *
|
||||
+ *
|
||||
+ * Alternatively, you can license this library under a commercial license,
|
||||
+ * please contact Pulse-Eight Licensing for more information.
|
||||
+ *
|
||||
+ * For more information contact:
|
||||
+ * Pulse-Eight Licensing <license@pulse-eight.com>
|
||||
+ * http://www.pulse-eight.com/
|
||||
+ * http://www.pulse-eight.net/
|
||||
+ */
|
||||
+
|
||||
+#include "env.h"
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+#if defined(HAVE_AMLOGIC_API)
|
||||
+#include "AmlogicCECAdapterDetection.h"
|
||||
+#include "AmlogicCEC.h"
|
||||
+
|
||||
+using namespace CEC;
|
||||
+
|
||||
+bool CAmlogicCECAdapterDetection::FindAdapter(void)
|
||||
+{
|
||||
+ return access(CEC_AMLOGIC_PATH, 0) == 0;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.h libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.h
|
||||
--- libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCECAdapterDetection.h 2016-02-10 11:57:58.445532459 +0100
|
||||
@@ -0,0 +1,46 @@
|
||||
+#pragma once
|
||||
+/*
|
||||
+ * This file is part of the libCEC(R) library.
|
||||
+ *
|
||||
+ * libCEC Amlogic Code Copyright (C) 2016 Gerald Dachs
|
||||
+ * based heavily on:
|
||||
+ * libCEC Exynos Code Copyright (C) 2014 Valentin Manea
|
||||
+ * libCEC(R) is Copyright (C) 2011-2015 Pulse-Eight Limited. All rights reserved.
|
||||
+ * libCEC(R) is an original work, containing original code.
|
||||
+ *
|
||||
+ * libCEC(R) is a trademark of Pulse-Eight Limited.
|
||||
+ *
|
||||
+ * This program is dual-licensed; 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.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+ *
|
||||
+ *
|
||||
+ * Alternatively, you can license this library under a commercial license,
|
||||
+ * please contact Pulse-Eight Licensing for more information.
|
||||
+ *
|
||||
+ * For more information contact:
|
||||
+ * Pulse-Eight Licensing <license@pulse-eight.com>
|
||||
+ * http://www.pulse-eight.com/
|
||||
+ * http://www.pulse-eight.net/
|
||||
+ */
|
||||
+
|
||||
+#include "env.h"
|
||||
+
|
||||
+namespace CEC
|
||||
+{
|
||||
+ class CAmlogicCECAdapterDetection
|
||||
+ {
|
||||
+ public:
|
||||
+ static bool FindAdapter(void);
|
||||
+ };
|
||||
+}
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCEC.h libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCEC.h
|
||||
--- libcec-3.0.1/src/libcec/adapter/Amlogic/AmlogicCEC.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/adapter/Amlogic/AmlogicCEC.h 2016-02-10 11:57:58.445532459 +0100
|
||||
@@ -0,0 +1,41 @@
|
||||
+#pragma once
|
||||
+/*
|
||||
+ * This file is part of the libCEC(R) library.
|
||||
+ *
|
||||
+ * libCEC Amlogic Code Copyright (C) 2016 Gerald Dachs
|
||||
+ * based heavily on:
|
||||
+ * libCEC Exynos Code Copyright (C) 2014 Valentin Manea
|
||||
+ * libCEC(R) is Copyright (C) 2011-2015 Pulse-Eight Limited. All rights reserved.
|
||||
+ * libCEC(R) is an original work, containing original code.
|
||||
+ *
|
||||
+ * libCEC(R) is a trademark of Pulse-Eight Limited.
|
||||
+ *
|
||||
+ * This program is dual-licensed; 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.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
+ *
|
||||
+ *
|
||||
+ * Alternatively, you can license this library under a commercial license,
|
||||
+ * please contact Pulse-Eight Licensing for more information.
|
||||
+ *
|
||||
+ * For more information contact:
|
||||
+ * Pulse-Eight Licensing <license@pulse-eight.com>
|
||||
+ * http://www.pulse-eight.com/
|
||||
+ * http://www.pulse-eight.net/
|
||||
+ */
|
||||
+
|
||||
+
|
||||
+#define CEC_DEFAULT_PADDR 0x1000
|
||||
+#define CEC_IOC_SETLADDR _IOW('c', 0, unsigned int)
|
||||
+#define CEC_IOC_GETPADDR _IO('c', 1)
|
||||
+#define CEC_MAX_FRAME_SIZE 16
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/cmake/CheckPlatformSupport.cmake libcec-3.0.1-with-amlogic-adapter/src/libcec/cmake/CheckPlatformSupport.cmake
|
||||
--- libcec-3.0.1/src/libcec/cmake/CheckPlatformSupport.cmake 2016-02-21 01:11:12.579266950 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/cmake/CheckPlatformSupport.cmake 2016-02-10 13:18:20.847385373 +0100
|
||||
@@ -11,6 +11,7 @@
|
||||
# HAVE_IMX_API 1 if i.MX is supported
|
||||
# HAVE_TDA995X_API 1 if TDA995X is supported
|
||||
# HAVE_EXYNOS_API 1 if Exynos is supported
|
||||
+# HAVE_AMLOGIC_API 1 if Amlogic is supported
|
||||
# HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected
|
||||
#
|
||||
|
||||
@@ -129,6 +130,18 @@
|
||||
else()
|
||||
set(HAVE_EXYNOS_API 0)
|
||||
endif()
|
||||
+
|
||||
+ # Amlogic
|
||||
+ if (${HAVE_AMLOGIC_API})
|
||||
+ set(LIB_INFO "${LIB_INFO}, Amlogic")
|
||||
+ set(HAVE_AMLOGIC_API 1)
|
||||
+ set(CEC_SOURCES_ADAPTER_AMLOGIC adapter/Amlogic/AmlogicCECAdapterDetection.cpp
|
||||
+ adapter/Amlogic/AmlogicCECAdapterCommunication.cpp)
|
||||
+ source_group("Source Files\\adapter\\Amlogic" FILES ${CEC_SOURCES_ADAPTER_AMLOGIC})
|
||||
+ list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_AMLOGIC})
|
||||
+ else()
|
||||
+ set(HAVE_AMLOGIC_API 0)
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
# rt
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/cmake/DisplayPlatformSupport.cmake libcec-3.0.1-with-amlogic-adapter/src/libcec/cmake/DisplayPlatformSupport.cmake
|
||||
--- libcec-3.0.1/src/libcec/cmake/DisplayPlatformSupport.cmake 2016-02-21 01:11:12.579266950 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/cmake/DisplayPlatformSupport.cmake 2016-02-10 12:47:10.380408360 +0100
|
||||
@@ -50,6 +50,12 @@
|
||||
message(STATUS "Exynos support: no")
|
||||
endif()
|
||||
|
||||
+if (HAVE_AMLOGIC_API)
|
||||
+ message(STATUS "Amlogic support: yes")
|
||||
+else()
|
||||
+ message(STATUS "Amlogic support: no")
|
||||
+endif()
|
||||
+
|
||||
if (HAVE_PYTHON)
|
||||
message(STATUS "Python support: version ${PYTHONLIBS_VERSION_STRING} (${PYTHON_VERSION})")
|
||||
else()
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/CMakeLists.txt libcec-3.0.1-with-amlogic-adapter/src/libcec/CMakeLists.txt
|
||||
--- libcec-3.0.1/src/libcec/CMakeLists.txt 2015-07-03 19:20:49.000000000 +0200
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/CMakeLists.txt 2016-02-10 11:57:58.445532459 +0100
|
||||
@@ -83,6 +83,9 @@
|
||||
adapter/Exynos/ExynosCEC.h
|
||||
adapter/Exynos/ExynosCECAdapterDetection.h
|
||||
adapter/Exynos/ExynosCECAdapterCommunication.h
|
||||
+ adapter/Amlogic/AmlogicCEC.h
|
||||
+ adapter/Amlogic/AmlogicCECAdapterDetection.h
|
||||
+ adapter/Amlogic/AmlogicCECAdapterCommunication.h
|
||||
adapter/Pulse-Eight/USBCECAdapterMessageQueue.h
|
||||
adapter/Pulse-Eight/USBCECAdapterCommunication.h
|
||||
adapter/Pulse-Eight/USBCECAdapterCommands.h
|
||||
diff -Nur -x .cproject -x .project -x .settings libcec-3.0.1/src/libcec/env.h.in libcec-3.0.1-with-amlogic-adapter/src/libcec/env.h.in
|
||||
--- libcec-3.0.1/src/libcec/env.h.in 2016-02-21 01:11:12.579266950 +0100
|
||||
+++ libcec-3.0.1-with-amlogic-adapter/src/libcec/env.h.in 2016-02-10 11:57:58.449532413 +0100
|
||||
@@ -69,6 +69,9 @@
|
||||
/* Define to 1 for Exynos support */
|
||||
#cmakedefine HAVE_EXYNOS_API @HAVE_EXYNOS_API@
|
||||
|
||||
+/* Define to 1 for Amlogic support */
|
||||
+#cmakedefine HAVE_AMLOGIC_API @HAVE_AMLOGIC_API@
|
||||
+
|
||||
/* Define to 1 for nVidia EDID parsing support (on selected models) */
|
||||
#cmakedefine HAVE_NVIDIA_EDID_PARSER @HAVE_NVIDIA_EDID_PARSER@
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
||||