mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
Compare commits
632 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
85a6965eff | ||
|
|
f7e98de4f7 | ||
|
|
d1c6d0e3ce | ||
|
|
b95e7b8364 | ||
|
|
4d23f2d497 | ||
|
|
a59b79b030 | ||
|
|
5a506f8577 | ||
|
|
257e39416b | ||
|
|
59e38dd7da | ||
|
|
b14629f4e9 | ||
|
|
be8e1e0d4a | ||
|
|
cc78cd5fb0 | ||
|
|
48bb8bfeb2 | ||
|
|
64942aecc4 | ||
|
|
e7d89f40d7 | ||
|
|
0abbe04dfe | ||
|
|
2117011f59 | ||
|
|
cb780ca155 | ||
|
|
f6dc1f2492 | ||
|
|
4b5b447711 | ||
|
|
481609c5a2 | ||
|
|
4a72228a2e | ||
|
|
aba6e86d9a | ||
|
|
7dafa3cc83 | ||
|
|
30f90e84b8 | ||
|
|
499c3dd666 | ||
|
|
dc54c26032 | ||
|
|
c0eaf86646 | ||
|
|
0847aaecad | ||
|
|
24fc5b391c | ||
|
|
3c41169192 | ||
|
|
0f415ed2f3 | ||
|
|
3dfc075002 | ||
|
|
7e0e21469c | ||
|
|
2813f9d9ac | ||
|
|
e2cede22da | ||
|
|
6deefc56db | ||
|
|
aaa514a978 | ||
|
|
43c6c05fc3 | ||
|
|
51c5f8b840 | ||
|
|
95165701fa | ||
|
|
019589d077 | ||
|
|
9a036e6193 | ||
|
|
ae76d1fc53 | ||
|
|
8a1ad283ae | ||
|
|
da5b559a53 | ||
|
|
c3d102b425 | ||
|
|
a73b4fc677 | ||
|
|
2b6087dcc4 | ||
|
|
84b94d1188 | ||
|
|
2535369a55 | ||
|
|
620c4357e9 | ||
|
|
2dbadd289e | ||
|
|
2e94f15c52 | ||
|
|
a7a729ea27 | ||
|
|
843e3972df | ||
|
|
b4236a1f20 | ||
|
|
0e873dbe50 | ||
|
|
4c10003915 | ||
|
|
94f780417b | ||
|
|
1bdbcac4a5 | ||
|
|
176a5d7660 | ||
|
|
1b9389ee60 | ||
|
|
56b821990f | ||
|
|
7f700f9c33 | ||
|
|
dbe66d586c | ||
|
|
b674670ed6 | ||
|
|
16b1000801 | ||
|
|
3bebe1c45b | ||
|
|
9da7df25a8 | ||
|
|
d51b456312 | ||
|
|
4f5e0a5d98 | ||
|
|
57ed5cb599 | ||
|
|
3006253431 | ||
|
|
0c6541ff7a | ||
|
|
0cf170998a | ||
|
|
0c863255d9 | ||
|
|
e0dee4f726 | ||
|
|
a91c7fb009 | ||
|
|
525780e607 | ||
|
|
29e8ecb3ad | ||
|
|
3f21054728 | ||
|
|
e33754cf6d | ||
|
|
8a26958aed | ||
|
|
eda2b9b08b | ||
|
|
6d008fb97b | ||
|
|
6d3a583c10 | ||
|
|
9c5c4ee39b | ||
|
|
59360d917d | ||
|
|
f4c0e29e28 | ||
|
|
7fa05a60a4 | ||
|
|
97ea40a27e | ||
|
|
95ff5ba8e6 | ||
|
|
b5cee13ce9 | ||
|
|
e5e6606a2f | ||
|
|
3bc0e8d287 | ||
|
|
651fa5f390 | ||
|
|
f7a36dee3a | ||
|
|
b37493f278 | ||
|
|
d5e9be8678 | ||
|
|
04bcda7306 | ||
|
|
6d5609af2e | ||
|
|
467ac9f507 | ||
|
|
b0059be852 | ||
|
|
615a7df96b | ||
|
|
961e7a71a2 | ||
|
|
7a5c505b0f | ||
|
|
2c07f53457 | ||
|
|
651dcf3a0f | ||
|
|
4c6a7064d1 | ||
|
|
bd37823420 | ||
|
|
33cf42bd1a | ||
|
|
c05ce15210 | ||
|
|
e2b6fefc94 | ||
|
|
d80b87bf0b | ||
|
|
b8a76de283 | ||
|
|
4bed035ad6 | ||
|
|
4744e7fb95 | ||
|
|
dc340f5374 | ||
|
|
fd31d5d958 | ||
|
|
d690ffa4de | ||
|
|
456c875268 | ||
|
|
5a036290c9 | ||
|
|
94fc979e17 | ||
|
|
dbf14ed5ad | ||
|
|
9f3409e450 | ||
|
|
4bfb721783 | ||
|
|
1ab42d3688 | ||
|
|
b0827d0374 | ||
|
|
f831f77132 | ||
|
|
cb50b1aedd | ||
|
|
efdcb6ac82 | ||
|
|
6c9a6c559a | ||
|
|
eda3895783 | ||
|
|
f21a27a9c9 | ||
|
|
88e7f0ed56 | ||
|
|
1d08244e5a | ||
|
|
cd56447dee | ||
|
|
5447e1f476 | ||
|
|
f7a4e0a541 | ||
|
|
144cf9274e | ||
|
|
7b474a11e2 | ||
|
|
917538c9a1 | ||
|
|
f652d29558 | ||
|
|
5c14fc5b42 | ||
|
|
2126532bd4 | ||
|
|
8f53a3fe1d | ||
|
|
504eaa9686 | ||
|
|
63be73e9c0 | ||
|
|
d6724084e6 | ||
|
|
bdffbd9fea | ||
|
|
a1bf0679a4 | ||
|
|
d770c269d4 | ||
|
|
ef66462b26 | ||
|
|
cff65187df | ||
|
|
f13e773dea | ||
|
|
36705180fe | ||
|
|
cd25a326ed | ||
|
|
f9b4774e4f | ||
|
|
5fec628e2a | ||
|
|
7901a7561c | ||
|
|
cbd56c11f0 | ||
|
|
479be1c21e | ||
|
|
4aea0bf278 | ||
|
|
397d26a9fc | ||
|
|
16c166baaa | ||
|
|
c371c3c67a | ||
|
|
eb0ed51a8e | ||
|
|
604f9ff1b3 | ||
|
|
a462c3c9df | ||
|
|
d98f05a7be | ||
|
|
24527c8664 | ||
|
|
e41ad21ab0 | ||
|
|
935c3a8282 | ||
|
|
d700627937 | ||
|
|
adc71ae3f4 | ||
|
|
6912f505d1 | ||
|
|
9a466be33c | ||
|
|
10c2a621cf | ||
|
|
2ff06057e4 | ||
|
|
131a0fb484 | ||
|
|
80383e5b2f | ||
|
|
7f40ce7d9a | ||
|
|
1fff0f7e0f | ||
|
|
b1f7cbe66b | ||
|
|
5f4b124612 | ||
|
|
2869f9ef88 | ||
|
|
c676dd1932 | ||
|
|
9641602204 | ||
|
|
94316eedaa | ||
|
|
12f0e773c1 | ||
|
|
d451ba83e6 | ||
|
|
2e46e15b3f | ||
|
|
4da9dc2618 | ||
|
|
55488a9aae | ||
|
|
d5aef338e6 | ||
|
|
6191f4ec82 | ||
|
|
676de7e023 | ||
|
|
2000823abd | ||
|
|
46910de5dc | ||
|
|
a9a054c116 | ||
|
|
fa6e297d09 | ||
|
|
a02d0bee5d | ||
|
|
1494ed3b23 | ||
|
|
656b0bccb9 | ||
|
|
2eec924038 | ||
|
|
e39ca59565 | ||
|
|
a0f8a05ef8 | ||
|
|
8adbbfeefe | ||
|
|
475db26c33 | ||
|
|
91392ac0cc | ||
|
|
13ea4634e7 | ||
|
|
e3e071547d | ||
|
|
f90b396357 | ||
|
|
e3203be00e | ||
|
|
a09ae66ee4 | ||
|
|
0dfc5cdacd | ||
|
|
7a734868fc | ||
|
|
43d56068aa | ||
|
|
7777afa44b | ||
|
|
c288681cf6 | ||
|
|
d0f7dba369 | ||
|
|
06e44c387e | ||
|
|
ae98e8e669 | ||
|
|
62835db322 | ||
|
|
5f82648841 | ||
|
|
3890176041 | ||
|
|
eb3e81b9b3 | ||
|
|
7a4bf30ddb | ||
|
|
397c988616 | ||
|
|
942123dbd0 | ||
|
|
d5e874bade | ||
|
|
823cc69615 | ||
|
|
73f3af73b4 | ||
|
|
8d670ca7f1 | ||
|
|
490ce24d9d | ||
|
|
b788b2d5e4 | ||
|
|
55e2fdb4b5 | ||
|
|
98ec1e683c | ||
|
|
b1224cc6b3 | ||
|
|
4557d435be | ||
|
|
18cab7c938 | ||
|
|
ebf125b403 | ||
|
|
51eea0c617 | ||
|
|
501a764a37 | ||
|
|
4df6f892c4 | ||
|
|
f27ed415f4 | ||
|
|
7cb774c0dd | ||
|
|
71d86c0650 | ||
|
|
4e6274fb42 | ||
|
|
2681c541ed | ||
|
|
6c48ea6dee | ||
|
|
40000d6c67 | ||
|
|
c8bfbe3803 | ||
|
|
1968139338 | ||
|
|
b0ebdc4b40 | ||
|
|
6c82a7ffbb | ||
|
|
4aff2c22d6 | ||
|
|
32791169a6 | ||
|
|
18834637bb | ||
|
|
23e8c11c2b | ||
|
|
228a291af1 | ||
|
|
494f51dfa4 | ||
|
|
c87a946771 | ||
|
|
42e6dbe32d | ||
|
|
e32ef16312 | ||
|
|
bdd711f338 | ||
|
|
f3d6bf4dfd | ||
|
|
b478966ad2 | ||
|
|
5a453ce527 | ||
|
|
11d9d9ddfb | ||
|
|
1994df19b6 | ||
|
|
c06668c53d | ||
|
|
44b07022d1 | ||
|
|
91c934d481 | ||
|
|
1689c2ee31 | ||
|
|
5ffa181878 | ||
|
|
05c31315d4 | ||
|
|
3db4430c5b | ||
|
|
f0d62fa981 | ||
|
|
9e1504c375 | ||
|
|
8b85b51736 | ||
|
|
96a1fc7c8c | ||
|
|
34a8bb03df | ||
|
|
219b187452 | ||
|
|
b729450c77 | ||
|
|
933da05f79 | ||
|
|
49267a0c1f | ||
|
|
a9b47d44ca | ||
|
|
0d8bb0d800 | ||
|
|
b9284db4a3 | ||
|
|
fbf57d1b47 | ||
|
|
24bee9dfb8 | ||
|
|
9488fd2175 | ||
|
|
54673c47d6 | ||
|
|
f58cc6dfe7 | ||
|
|
41b0ef9285 | ||
|
|
ce9105f715 | ||
|
|
733499e867 | ||
|
|
c9f693af96 | ||
|
|
173fe0d18a | ||
|
|
dbac8da295 | ||
|
|
316488ec8a | ||
|
|
138a9aa4f0 | ||
|
|
ad2c0b2c5c | ||
|
|
34c7bad3a1 | ||
|
|
d2413ab3bc | ||
|
|
eb756aac6b | ||
|
|
6390ccb28a | ||
|
|
73e9c4455d | ||
|
|
6e1ab4be9e | ||
|
|
9b9e84eda4 | ||
|
|
3b0b09a9fe | ||
|
|
e23799138e | ||
|
|
941105862f | ||
|
|
57990e9052 | ||
|
|
24e80bbcf7 | ||
|
|
2fa3c81ac6 | ||
|
|
79783c8f9e | ||
|
|
c025a11e54 | ||
|
|
d7328888a0 | ||
|
|
46f0ca2137 | ||
|
|
e67435662c | ||
|
|
cac5a18a63 | ||
|
|
3efe54ae08 | ||
|
|
727f4e35b0 | ||
|
|
e3f7ec975c | ||
|
|
7e549953fe | ||
|
|
6212e78e3f | ||
|
|
98669b04a2 | ||
|
|
fbaa1b57cf | ||
|
|
c12e7a9652 | ||
|
|
a073f69392 | ||
|
|
248a15bbc0 | ||
|
|
072a1e1911 | ||
|
|
3824ffdb2c | ||
|
|
2b511cca2f | ||
|
|
515edf22da | ||
|
|
4d9ea7bfc0 | ||
|
|
e17ea606e8 | ||
|
|
dd9c15cdb1 | ||
|
|
15ce9459d2 | ||
|
|
7d7cf74923 | ||
|
|
067fb8464a | ||
|
|
ed7bb70b89 | ||
|
|
03171670d5 | ||
|
|
ce0b6dd0b4 | ||
|
|
a0274a2267 | ||
|
|
55c03f5eeb | ||
|
|
8697f9e4dc | ||
|
|
a0c28477a1 | ||
|
|
a817547eb6 | ||
|
|
5f6b9e46e8 | ||
|
|
2fd358dc31 | ||
|
|
cae51fc58f | ||
|
|
2fa61b781f | ||
|
|
dfb6593696 | ||
|
|
25a51dad04 | ||
|
|
9564fcc635 | ||
|
|
316ea09daa | ||
|
|
0fa72090c6 | ||
|
|
d1168206b5 | ||
|
|
18b8ba44a4 | ||
|
|
441e1a3ed6 | ||
|
|
c28b4061de | ||
|
|
f7c59a63c4 | ||
|
|
477d15fb23 | ||
|
|
3ee5cae11b | ||
|
|
b65cffaa7e | ||
|
|
49b2714465 | ||
|
|
5fd79560ba | ||
|
|
3de54ec117 | ||
|
|
580154c93c | ||
|
|
c37b5a7eed | ||
|
|
0c12533524 | ||
|
|
65398da267 | ||
|
|
b85b9ea1c3 | ||
|
|
e9e08b225e | ||
|
|
a3be1cc632 | ||
|
|
471b2f0e21 | ||
|
|
f46d860025 | ||
|
|
0cfb546d80 | ||
|
|
206c84df68 | ||
|
|
cf5efca1c5 | ||
|
|
e1693c015f | ||
|
|
e1e91a5174 | ||
|
|
b7f6a81eec | ||
|
|
1180ed3dbe | ||
|
|
5e134d52fe | ||
|
|
c99780e858 | ||
|
|
4b598571a8 | ||
|
|
623255dda2 | ||
|
|
40fa430c0c | ||
|
|
2867376073 | ||
|
|
abf609d0f5 | ||
|
|
cb38b959d2 | ||
|
|
5583bf2285 | ||
|
|
b3a16af579 | ||
|
|
0d7a451214 | ||
|
|
f0002de461 | ||
|
|
64c75b14d7 | ||
|
|
18f5996258 | ||
|
|
0635203b10 | ||
|
|
39949671d3 | ||
|
|
3668717f6c | ||
|
|
b726891e2a |
@@ -282,7 +282,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
|
||||
@@ -343,6 +343,7 @@ show_config() {
|
||||
config_message="$config_message\n $dashes$dashes"
|
||||
|
||||
config_message="$config_message\n - ALSA support:\t\t\t $ALSA_SUPPORT"
|
||||
config_message="$config_message\n - Pulseaudio support:\t\t\t $PULSEAUDIO_SUPPORT"
|
||||
config_message="$config_message\n - Bluetooth support:\t\t\t $BLUETOOTH_SUPPORT"
|
||||
config_message="$config_message\n - LCD drivers:\t\t\t\t $LCD_DRIVER"
|
||||
|
||||
|
||||
@@ -52,6 +52,11 @@ LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $ROOT/package
|
||||
# If you have ccache installed, take care that LOCAL_CC don't point to it
|
||||
LOCAL_CC=`which gcc`
|
||||
|
||||
if [ -z "$LOCAL_CC" ] ; then
|
||||
echo "***** Please install gcc *****"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
# Need to point to your actual g++
|
||||
# If you have ccache installed, take care that LOCAL_CXX don't point to it
|
||||
LOCAL_CXX=`which g++`
|
||||
@@ -76,9 +81,6 @@ LINUX_DEPENDS="$PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf $ROOT/package
|
||||
# the nearest multiple of 16 kilobytes.
|
||||
CCACHE_CACHE_SIZE="30G"
|
||||
|
||||
# forcing install of all packages (yes/no)
|
||||
FORCE_INSTALL="no"
|
||||
|
||||
# install devtools on development builds
|
||||
if [ "$OPENELEC_VERSION" = "devel" ]; then
|
||||
DEVTOOLS=yes
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# VERSION: set full version, use "devel" for development version
|
||||
OPENELEC_VERSION="5.95.3"
|
||||
OPENELEC_VERSION="6.0.1"
|
||||
|
||||
# OS_VERSION: OS Version
|
||||
OS_VERSION="6.0"
|
||||
|
||||
@@ -6,14 +6,17 @@
|
||||
|
||||
# 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=""
|
||||
|
||||
# Root password to integrate in the target system
|
||||
ROOT_PASSWORD="openelec"
|
||||
|
||||
# Install glibc locales to the build (yes / no)
|
||||
GLIBC_LOCALES="yes"
|
||||
|
||||
# Mediacenter to use (kodi / no)
|
||||
MEDIACENTER="kodi"
|
||||
|
||||
@@ -28,6 +31,9 @@
|
||||
# install extra subtitle Fonts for KODI (yes / no)
|
||||
KODI_EXTRA_FONTS="yes"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="no"
|
||||
|
||||
# build and install espeak support (yes / no)
|
||||
ESPEAK_SUPPORT="yes"
|
||||
|
||||
@@ -54,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"
|
||||
@@ -143,7 +149,7 @@
|
||||
|
||||
# LCD driver to Use - Possible drivers are ( Comma seperated:
|
||||
# bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,dm140,
|
||||
# ea65,EyeboxOne,g15,glcdlib,glk,hd44780,i2500vfd,
|
||||
# ea65,EyeboxOne,g15,glcd,glcdlib,glk,hd44780,i2500vfd,
|
||||
# icp_a106,imon,imonlcd,IOWarrior,irman,irtrans,
|
||||
# joy,lb216,lcdm001,lcterm,lirc,lis,MD8800,mdm166a,
|
||||
# ms6931,mtc_s16209x,MtxOrb,mx5000,NoritakeVFD,
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 61 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 439 KiB After Width: | Height: | Size: 117 KiB |
3
packages/3rdparty/lib/cxxtools/package.mk
vendored
3
packages/3rdparty/lib/cxxtools/package.mk
vendored
@@ -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/web/tntnet/package.mk
vendored
2
packages/3rdparty/web/tntnet/package.mk
vendored
@@ -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
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,3 +1,6 @@
|
||||
6.0.1
|
||||
- update repo minversion for kodi 15
|
||||
|
||||
6.0.0
|
||||
- rebuild for OpenELEC-6.0
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
PKG_NAME="repository.unofficial.addon.pro"
|
||||
PKG_VERSION="6.0"
|
||||
PKG_REV="0"
|
||||
PKG_REV="2"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://unofficial.addon.pro"
|
||||
|
||||
@@ -1,30 +1,20 @@
|
||||
<?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>
|
||||
<dir minversion="14.9.0">
|
||||
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>
|
||||
<datadir zip="true">http://unofficial.addon.pro/addons/6.0/@PROJECT@/@ARCH@</datadir>
|
||||
</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,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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -20,8 +20,8 @@ PKG_NAME="flac"
|
||||
PKG_VERSION="1.3.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://flac.sourceforge.net/"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://xiph.org/flac/"
|
||||
PKG_URL="http://downloads.xiph.org/releases/flac/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain libogg"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libcdio"
|
||||
PKG_VERSION="0.92"
|
||||
PKG_VERSION="0.93"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/libcdio/"
|
||||
PKG_URL="http://ftp.gnu.org/gnu/libcdio/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://www.gnu.org/software/libcdio/"
|
||||
PKG_URL="https://ftp.gnu.org/gnu/libcdio/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libogg"
|
||||
PKG_VERSION="1.3.1"
|
||||
PKG_VERSION="1.3.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.xiph.org/ogg/"
|
||||
PKG_SITE="https://www.xiph.org/ogg/"
|
||||
PKG_URL="http://downloads.xiph.org/releases/ogg/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
|
||||
@@ -20,7 +20,7 @@ PKG_NAME="libopenmpt"
|
||||
PKG_VERSION="0.2.4764"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://lib.openmpt.org/libopenmpt/"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
|
||||
50
packages/audio/libsndfile/package.mk
Normal file
50
packages/audio/libsndfile/package.mk
Normal file
@@ -0,0 +1,50 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libsndfile"
|
||||
PKG_VERSION="1.0.25"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://www.mega-nerd.com/libsndfile/"
|
||||
PKG_URL="http://www.mega-nerd.com/$PKG_NAME/files/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain alsa-lib flac libvorbis libogg"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="libsndfile: A library for accessing various audio file formats"
|
||||
PKG_LONGDESC="libsndfile is a C library for reading and writing sound files such as AIFF, AU, WAV, and others through one standard interface. It can currently read/write 8, 16, 24 and 32-bit PCM files as well as 32 and 64-bit floating point WAV files and a number of compressed formats. It compiles and runs on *nix, MacOS, and Win32."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
# package specific configure options
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared \
|
||||
--disable-silent-rules \
|
||||
--disable-sqlite \
|
||||
--enable-alsa \
|
||||
--enable-external-libs \
|
||||
--disable-experimental \
|
||||
--disable-test-coverage \
|
||||
--enable-largefile \
|
||||
--with-gnu-ld"
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
diff -Naur libsndfile-1.0.25-old/configure.ac libsndfile-1.0.25-new/configure.ac
|
||||
--- libsndfile-1.0.25-old/configure.ac 2011-07-13 01:59:57.000000000 -0700
|
||||
+++ libsndfile-1.0.25-new/configure.ac 2011-07-13 17:04:14.000000000 -0700
|
||||
@@ -18,9 +18,6 @@
|
||||
AM_INIT_AUTOMAKE($PACKAGE_NAME,$PACKAGE_VERSION)
|
||||
AM_SILENT_RULES([yes])
|
||||
|
||||
-dnl Add parameters for aclocal
|
||||
-AC_SUBST(ACLOCAL_AMFLAGS, "-I M4")
|
||||
-
|
||||
AC_LANG([C])
|
||||
|
||||
AC_PROG_CC
|
||||
diff -Naur libsndfile-1.0.25-old/Makefile.am libsndfile-1.0.25-new/Makefile.am
|
||||
--- libsndfile-1.0.25-old/Makefile.am 2011-07-07 02:47:24.000000000 -0700
|
||||
+++ libsndfile-1.0.25-new/Makefile.am 2011-07-13 17:04:14.000000000 -0700
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-werror
|
||||
|
||||
+ACLOCAL_AMFLAGS = -I M4
|
||||
+
|
||||
if BUILD_OCTAVE_MOD
|
||||
octave_dir = Octave
|
||||
endif
|
||||
74
packages/audio/pulseaudio/config/system.pa
Normal file
74
packages/audio/pulseaudio/config/system.pa
Normal file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/pulseaudio -nF
|
||||
#
|
||||
# This file is part of PulseAudio.
|
||||
#
|
||||
# PulseAudio 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 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# PulseAudio 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 Lesser General Public License
|
||||
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# This startup script is used only if PulseAudio is started in system
|
||||
# mode.
|
||||
|
||||
### Automatically load driver modules depending on the hardware available
|
||||
.ifexists module-udev-detect.so
|
||||
load-module module-udev-detect
|
||||
.else
|
||||
### Use the static hardware detection module (for systems that lack udev/hal support)
|
||||
load-module module-detect
|
||||
.endif
|
||||
|
||||
### Load several protocols
|
||||
.ifexists module-esound-protocol-unix.so
|
||||
load-module module-esound-protocol-unix
|
||||
.endif
|
||||
load-module module-native-protocol-unix
|
||||
|
||||
### Automatically restore the volume of streams and devices
|
||||
load-module module-stream-restore
|
||||
load-module module-device-restore
|
||||
|
||||
### Automatically restore the default sink/source when changed by the user
|
||||
### during runtime
|
||||
### NOTE: This should be loaded as early as possible so that subsequent modules
|
||||
### that look up the default sink/source get the right value
|
||||
load-module module-default-device-restore
|
||||
|
||||
### Automatically move streams to the default sink if the sink they are
|
||||
### connected to dies, similar for sources
|
||||
load-module module-rescue-streams
|
||||
|
||||
### Make sure we always have a sink around, even if it is a null sink.
|
||||
load-module module-always-sink
|
||||
|
||||
### Automatically suspend sinks/sources that become idle for too long
|
||||
load-module module-suspend-on-idle
|
||||
|
||||
### Enable positioned event sounds
|
||||
load-module module-position-event-sounds
|
||||
|
||||
### Automatically load modules for bluetooth
|
||||
.ifexists module-bluetooth-policy.so
|
||||
load-module module-bluetooth-policy
|
||||
.endif
|
||||
|
||||
.ifexists module-bluetooth-discover.so
|
||||
load-module module-bluetooth-discover
|
||||
.endif
|
||||
|
||||
.ifexists module-zeroconf-publish.so
|
||||
load-module module-zeroconf-publish
|
||||
load-module module-zeroconf-discover
|
||||
.endif
|
||||
|
||||
load-module module-native-protocol-tcp auth-anonymous=1
|
||||
load-module module-switch-on-connect
|
||||
|
||||
128
packages/audio/pulseaudio/package.mk
Normal file
128
packages/audio/pulseaudio/package.mk
Normal file
@@ -0,0 +1,128 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# This Program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This Program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC.tv; see the file COPYING. If not, write to
|
||||
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
|
||||
# http://www.gnu.org/copyleft/gpl.html
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pulseaudio"
|
||||
PKG_VERSION="7.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://pulseaudio.org/"
|
||||
PKG_URL="http://www.freedesktop.org/software/pulseaudio/releases/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain libtool json-c alsa-lib libsndfile soxr dbus systemd libressl libcap"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="pulseaudio: Yet another sound server for Unix"
|
||||
PKG_LONGDESC="PulseAudio is a sound server for Linux and other Unix-like operating systems. It is intended to be an improved drop-in replacement for the Enlightened Sound Daemon (esound or esd). In addition to the features esound provides, PulseAudio has an extensible plugin architecture, support for more than one sink per source, better low-latency behavior, the ability to be embedded into other software, a completely asynchronous C API, a simple command line interface for reconfiguring the daemon while running, flexible and implicit sample type conversion and resampling, and a "Zero-Copy" architecture."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
|
||||
# broken
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
if [ "$BLUETOOTH_SUPPORT" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET sbc"
|
||||
PULSEAUDIO_BLUETOOTH="--enable-bluez5"
|
||||
else
|
||||
PULSEAUDIO_BLUETOOTH="--disable-bluez5"
|
||||
fi
|
||||
|
||||
if [ "$AVAHI_DAEMON" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET avahi"
|
||||
PULSEAUDIO_AVAHI="--enable-avahi"
|
||||
else
|
||||
PULSEAUDIO_AVAHI="--disable-avahi"
|
||||
fi
|
||||
|
||||
# package specific configure options
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
|
||||
--disable-nls \
|
||||
--enable-largefile \
|
||||
--disable-rpath \
|
||||
--disable-x11 \
|
||||
--disable-tests \
|
||||
--disable-samplerate \
|
||||
--disable-oss-output \
|
||||
--disable-oss-wrapper \
|
||||
--disable-coreaudio-output \
|
||||
--enable-alsa \
|
||||
--disable-esound \
|
||||
--disable-solaris \
|
||||
--disable-waveout \
|
||||
--disable-glib2 \
|
||||
--disable-gtk3 \
|
||||
--disable-gconf \
|
||||
$PULSEAUDIO_AVAHI \
|
||||
--disable-jack \
|
||||
--disable-asyncns \
|
||||
--disable-tcpwrap \
|
||||
--disable-lirc \
|
||||
--enable-dbus \
|
||||
--disable-bluez4 \
|
||||
$PULSEAUDIO_BLUETOOTH \
|
||||
--disable-bluez5-ofono-headset \
|
||||
--disable-bluez5-native-headset \
|
||||
--enable-udev \
|
||||
--disable-hal-compat \
|
||||
--enable-ipv6 \
|
||||
--enable-openssl \
|
||||
--disable-xen \
|
||||
--disable-orc \
|
||||
--disable-manpages \
|
||||
--disable-per-user-esound-socket \
|
||||
--disable-default-build-tests \
|
||||
--disable-legacy-database-entry-format \
|
||||
--with-system-user=root \
|
||||
--with-system-group=root \
|
||||
--with-access-group=root \
|
||||
--without-caps \
|
||||
--without-fftw \
|
||||
--without-speex \
|
||||
--with-soxr \
|
||||
--with-module-dir=/usr/lib/pulse"
|
||||
|
||||
post_makeinstall_target() {
|
||||
# add_user pulse x 499 498 "PulseAudio System Daemon" "/var/run/pulse" "/bin/sh"
|
||||
# add_group pulse 498
|
||||
# add_group pulse-access 497
|
||||
|
||||
sed -e 's%user="pulse"%user="root"%g' -i $INSTALL/etc/dbus-1/system.d/pulseaudio-system.conf
|
||||
|
||||
rm -rf $INSTALL/usr/bin/esdcompat
|
||||
rm -rf $INSTALL/usr/include
|
||||
rm -rf $INSTALL/usr/lib/cmake
|
||||
rm -rf $INSTALL/usr/lib/pkgconfig
|
||||
rm -rf $INSTALL/usr/lib/systemd
|
||||
rm -rf $INSTALL/usr/share/vala
|
||||
rm -rf $INSTALL/usr/share/zsh
|
||||
rm -rf $INSTALL/usr/share/bash-completion
|
||||
|
||||
cp $PKG_DIR/config/system.pa $INSTALL/etc/pulse/
|
||||
|
||||
# Remove unwanted symlinks
|
||||
for file in $INSTALL/*; do
|
||||
if [ -L "$file" ]; then
|
||||
rm $file
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
post_install() {
|
||||
enable_service pulseaudio.service
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
From c9d7dcaa87f9ada49d75483a7c604dba27a0d71a Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Tue, 7 Jan 2014 13:22:48 +0200
|
||||
Subject: [PATCH] never append -dirty to server/module version
|
||||
|
||||
---
|
||||
git-version-gen | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/git-version-gen b/git-version-gen
|
||||
index 9d65b80..fcf11fd 100755
|
||||
--- a/git-version-gen
|
||||
+++ b/git-version-gen
|
||||
@@ -152,6 +152,7 @@ v=`echo "$v" |sed 's/^v//'`
|
||||
git status > /dev/null 2>&1
|
||||
|
||||
dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
|
||||
+dirty=
|
||||
case "$dirty" in
|
||||
'') ;;
|
||||
*) # Append the suffix only if there isn't one already.
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
--- pulseaudio-4.0.orig/src/pulsecore/core-util.c 2014-01-12 23:31:26.281525000 -0800
|
||||
+++ pulseaudio-4.0/src/pulsecore/core-util.c 2014-01-12 23:32:32.977118803 -0800
|
||||
@@ -1524,10 +1524,6 @@
|
||||
if (stat(p, &st) < 0)
|
||||
return -errno;
|
||||
|
||||
-#ifdef HAVE_GETUID
|
||||
- if (st.st_uid != getuid())
|
||||
- return -EACCES;
|
||||
-#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
1
packages/audio/pulseaudio/profile.d/04-pulseaudio.conf
Normal file
1
packages/audio/pulseaudio/profile.d/04-pulseaudio.conf
Normal file
@@ -0,0 +1 @@
|
||||
export SDL_AUDIODRIVER=pulse
|
||||
15
packages/audio/pulseaudio/system.d/pulseaudio.service
Normal file
15
packages/audio/pulseaudio/system.d/pulseaudio.service
Normal file
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=PulseAudio Sound System
|
||||
After=syslog.target local-fs.target
|
||||
Requires=bluetooth.service
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
ExecStart=/usr/bin/pulseaudio --start --daemonize --log-level=0
|
||||
TimeoutStopSec=5
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
StartLimitInterval=0
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -16,18 +16,21 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="yaml"
|
||||
PKG_VERSION="0.1.4"
|
||||
PKG_NAME="sbc"
|
||||
PKG_VERSION="1.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://pyyaml.org"
|
||||
PKG_URL="http://pyyaml.org/download/libyaml/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.bluez.org/"
|
||||
PKG_URL="http://www.kernel.org/pub/linux/bluetooth/sbc-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="web"
|
||||
PKG_SHORTDESC="yaml: a next generation YAML parser and emitter."
|
||||
PKG_LONGDESC="yaml is the next generation YAML parser and emitter."
|
||||
PKG_SECTION="network"
|
||||
PKG_SHORTDESC="sbc: standalone SBC library"
|
||||
PKG_LONGDESC="standalone SBC library"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared \
|
||||
--disable-tools --disable-tester"
|
||||
54
packages/audio/soxr/package.mk
Normal file
54
packages/audio/soxr/package.mk
Normal file
@@ -0,0 +1,54 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
|
||||
#
|
||||
# OpenELEC is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# OpenELEC is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="soxr"
|
||||
PKG_VERSION="0.1.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://sourceforge.net/p/soxr/wiki/Home/"
|
||||
PKG_URL="$SOURCEFORGE_SRC/soxr/$PKG_NAME-$PKG_VERSION-Source.tar.xz"
|
||||
PKG_SOURCE_DIR="$PKG_NAME-$PKG_VERSION-Source"
|
||||
PKG_DEPENDS_TARGET="toolchain cmake:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="audio"
|
||||
PKG_SHORTDESC="soxr: a library which performs one-dimensional sample-rate conversion."
|
||||
PKG_LONGDESC="The SoX Resampler library performs one-dimensional sample-rate conversion. it may be used, for example, to resample PCM-encoded audio."
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
# package specific configure options
|
||||
configure_target() {
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DHAVE_WORDS_BIGENDIAN_EXITCODE=1 \
|
||||
-DBUILD_TESTS=0 \
|
||||
-DBUILD_EXAMPLES=1 \
|
||||
-DBUILD_SHARED_LIBS=OFF ..
|
||||
}
|
||||
|
||||
#post_makeinstall_target() {
|
||||
# rm -rf $INSTALL/usr/bin
|
||||
# # pkgconf hack
|
||||
# $SED "s:\(['=\" ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/bin/taglib-config
|
||||
# $SED "s:\([':\" ]\)-I/usr:\\1-I$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/lib/pkgconfig/taglib.pc
|
||||
# $SED "s:\([':\" ]\)-L/usr:\\1-L$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/lib/pkgconfig/taglib.pc
|
||||
# $SED "s:\([':\" ]\)-I/usr:\\1-I$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/lib/pkgconfig/taglib_c.pc
|
||||
# $SED "s:\([':\" ]\)-L/usr:\\1-L$SYSROOT_PREFIX/usr:g" $SYSROOT_PREFIX/usr/lib/pkgconfig/taglib_c.pc
|
||||
#}
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="cpio"
|
||||
PKG_VERSION="2.11"
|
||||
PKG_VERSION="2.12"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
diff --git a/gnu/stdio.in.h b/gnu/stdio.in.h
|
||||
index 88b368b..44f1087 100644
|
||||
--- a/gnu/stdio.in.h
|
||||
+++ b/gnu/stdio.in.h
|
||||
@@ -139,7 +139,9 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
|
||||
so any use of gets warrants an unconditional warning. Assume it is
|
||||
always declared, since it is required by C89. */
|
||||
#undef gets
|
||||
+#if HAVE_RAW_DECL_GETS
|
||||
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
+#endif
|
||||
|
||||
#if @GNULIB_FOPEN@
|
||||
# if @REPLACE_FOPEN@
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="lzo"
|
||||
PKG_VERSION="2.08"
|
||||
PKG_VERSION="2.09"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xz"
|
||||
PKG_VERSION="5.2.1"
|
||||
PKG_VERSION="5.2.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="sqlite"
|
||||
PKG_VERSION="autoconf-3081002"
|
||||
PKG_VERSION="autoconf-3100200"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="PublicDomain"
|
||||
PKG_SITE="http://www.sqlite.org/"
|
||||
PKG_URL="http://sqlite.org/2015/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_SITE="https://www.sqlite.org/"
|
||||
PKG_URL="https://www.sqlite.org/2016/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="database"
|
||||
@@ -74,7 +74,3 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-static \
|
||||
--enable-threadsafe \
|
||||
--enable-dynamic-extensions \
|
||||
--with-gnu-ld"
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gdb"
|
||||
PKG_VERSION="7.9.1"
|
||||
PKG_VERSION="7.10.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="binutils"
|
||||
PKG_VERSION="2.25"
|
||||
PKG_VERSION="2.25.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="ccache"
|
||||
PKG_VERSION="3.2.1"
|
||||
PKG_VERSION="3.2.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@@ -34,6 +34,8 @@ PKG_AUTORECONF="no"
|
||||
|
||||
export CC=$LOCAL_CC
|
||||
|
||||
PKG_CONFIGURE_OPTS_HOST="--with-bundled-zlib"
|
||||
|
||||
post_makeinstall_host() {
|
||||
# setup ccache
|
||||
$ROOT/$TOOLCHAIN/bin/ccache --max-size=$CCACHE_CACHE_SIZE
|
||||
@@ -51,4 +53,4 @@ $ROOT/$TOOLCHAIN/bin/ccache $LOCAL_CXX "\$@"
|
||||
EOF
|
||||
|
||||
chmod +x $HOST_CXX
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="cmake"
|
||||
PKG_VERSION="3.2.3"
|
||||
PKG_VERSION="3.3.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
PKG_SITE="http://www.cmake.org/"
|
||||
PKG_URL="http://www.cmake.org/files/v3.2/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://www.cmake.org/files/v3.3/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_HOST="ccache:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="toolchain/devel"
|
||||
@@ -51,6 +51,9 @@ SET(CMAKE_SYSTEM_NAME Linux)
|
||||
#this one not so much
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
# processor (or hardware) of the target system
|
||||
SET(CMAKE_SYSTEM_PROCESSOR $TARGET_ARCH)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER $TARGET_CC)
|
||||
SET(CMAKE_CXX_COMPILER $TARGET_CXX)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="elfutils"
|
||||
PKG_VERSION="0.161"
|
||||
PKG_VERSION="0.164"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="fribidi"
|
||||
PKG_VERSION="0.19.5"
|
||||
PKG_VERSION="0.19.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="gettext"
|
||||
PKG_VERSION="0.19.5"
|
||||
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".
|
||||
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="glib"
|
||||
PKG_VERSION="2.44.1"
|
||||
PKG_VERSION="2.46.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL"
|
||||
PKG_SITE="http://www.gtk.org/"
|
||||
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.44/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.46/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain zlib libffi pcre Python:host"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
From 68cbd635036fe04cd07bbb1a4829eebab2d7dc03 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Wed, 20 Aug 2014 22:46:35 +0300
|
||||
Subject: [PATCH] dont build tests
|
||||
|
||||
---
|
||||
Makefile.am | 2 +-
|
||||
configure.ac | 17 -----------------
|
||||
2 files changed, 1 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 40e5cd5..db7bfc8 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -6,7 +6,7 @@ include $(top_srcdir)/glib.mk
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
|
||||
|
||||
-SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests
|
||||
+SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs
|
||||
DIST_SUBDIRS = $(SUBDIRS) build
|
||||
|
||||
bin_SCRIPTS = glib-gettextize
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a01e58d..f310615 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -2559,23 +2559,6 @@ dnl ******************************************************************
|
||||
|
||||
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
|
||||
|
||||
-AS_IF([ test $cross_compiling = yes ], [
|
||||
- AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no)
|
||||
- if test x$GLIB_GENMARSHAL = xno; then
|
||||
- AC_MSG_ERROR(Could not find a glib-genmarshal in your PATH)
|
||||
- fi
|
||||
-
|
||||
- AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas, no)
|
||||
- if test x$GLIB_COMPILE_SCHEMAS = xno; then
|
||||
- AC_MSG_ERROR(Could not find a glib-compile-schemas in your PATH)
|
||||
- fi
|
||||
-
|
||||
- AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources, no)
|
||||
- if test x$GLIB_COMPILE_RESOURCES = xno; then
|
||||
- AC_MSG_ERROR(Could not find a glib-compile-resources in your PATH)
|
||||
- fi
|
||||
-])
|
||||
-
|
||||
dnl **************************
|
||||
dnl *** Checks for gtk-doc ***
|
||||
dnl **************************
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#
|
||||
# For sites which prefer IPv4 connections change the last line to
|
||||
#
|
||||
precedence ::ffff:0:0/96 100
|
||||
#precedence ::ffff:0:0/96 100
|
||||
|
||||
#
|
||||
# scopev4 <mask> <value>
|
||||
@@ -60,6 +60,6 @@ precedence ::ffff:0:0/96 100
|
||||
# used. Changing these defaults should hardly ever be necessary.
|
||||
# The defaults are equivalent to:
|
||||
#
|
||||
scopev4 ::ffff:169.254.0.0/112 2
|
||||
scopev4 ::ffff:127.0.0.0/104 2
|
||||
scopev4 ::ffff:0.0.0.0/96 14
|
||||
#scopev4 ::ffff:169.254.0.0/112 2
|
||||
#scopev4 ::ffff:127.0.0.0/104 2
|
||||
#scopev4 ::ffff:0.0.0.0/96 14
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="glibc"
|
||||
PKG_VERSION="2.21"
|
||||
PKG_VERSION="2.22"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@@ -139,10 +139,13 @@ post_makeinstall_target() {
|
||||
|
||||
# remove locales and charmaps
|
||||
rm -rf $INSTALL/usr/share/i18n/charmaps
|
||||
rm -rf $INSTALL/usr/share/i18n/locales
|
||||
|
||||
mkdir -p $INSTALL/usr/share/i18n/locales
|
||||
cp -PR $ROOT/$PKG_BUILD/localedata/locales/POSIX $INSTALL/usr/share/i18n/locales
|
||||
if [ ! "$GLIBC_LOCALES" = yes ]; then
|
||||
rm -rf $INSTALL/usr/share/i18n/locales
|
||||
|
||||
mkdir -p $INSTALL/usr/share/i18n/locales
|
||||
cp -PR $ROOT/$PKG_BUILD/localedata/locales/POSIX $INSTALL/usr/share/i18n/locales
|
||||
fi
|
||||
|
||||
# create default configs
|
||||
mkdir -p $INSTALL/etc
|
||||
@@ -169,6 +172,7 @@ makeinstall_init() {
|
||||
cp -PR $ROOT/$PKG_BUILD/.$TARGET_NAME/elf/ld*.so* $INSTALL/lib
|
||||
cp $ROOT/$PKG_BUILD/.$TARGET_NAME/libc.so.6 $INSTALL/lib
|
||||
cp $ROOT/$PKG_BUILD/.$TARGET_NAME/nptl/libpthread.so.0 $INSTALL/lib
|
||||
cp -PR $ROOT/$PKG_BUILD/.$TARGET_NAME/rt/librt.so* $INSTALL/lib
|
||||
|
||||
if [ "$TARGET_ARCH" = "arm" -a "$TARGET_FLOAT" = "hard" ]; then
|
||||
ln -sf ld.so $INSTALL/lib/ld-linux.so.3
|
||||
|
||||
27
packages/devel/glibc/patches/glibc-99.01-BZ18921.patch
Normal file
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
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
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
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
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
|
||||
|
||||
@@ -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+"
|
||||
|
||||
@@ -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,7 @@
|
||||
################################################################################
|
||||
# This file is part of OpenELEC - http://www.openelec.tv
|
||||
# Copyright (C) 2009-2014 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
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -16,34 +17,23 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="PyYAML"
|
||||
PKG_VERSION="3.10"
|
||||
PKG_NAME="json-c"
|
||||
PKG_VERSION="0645020"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://pyyaml.org/"
|
||||
PKG_URL="http://pyyaml.org/download/pyyaml/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain Python distutilscross:host yaml"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/json-c/json-c/wiki"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="python/web"
|
||||
PKG_SHORTDESC="PyYAML: a next generation YAML parser and emitter for Python."
|
||||
PKG_LONGDESC="PyYAML is the next generation YAML parser and emitter for Python."
|
||||
PKG_SECTION="accessibility"
|
||||
PKG_SHORTDESC="json-c"
|
||||
PKG_LONGDESC="JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
PKG_AUTORECONF="yes"
|
||||
|
||||
pre_make_target() {
|
||||
export PYTHONXCPREFIX="$SYSROOT_PREFIX/usr"
|
||||
}
|
||||
|
||||
make_target() {
|
||||
python setup.py build --cross-compile
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
python setup.py install --root=$INSTALL --prefix=/usr
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
find $INSTALL/usr/lib -name "*.py" -exec rm -rf "{}" ";"
|
||||
}
|
||||
PKG_CONFIGURE_OPTS_TARGET="ac_cv_func_realloc_0_nonnull=yes \
|
||||
ac_cv_func_malloc_0_nonnull=yes \
|
||||
--enable-static --disable-shared \
|
||||
--disable-oldname-compat"
|
||||
@@ -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"
|
||||
|
||||
@@ -0,0 +1,859 @@
|
||||
From ec982e9800ae312972d306b67779215a2add6cde Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Fri, 24 Oct 2014 13:45:21 +0100
|
||||
Subject: [PATCH 1/6] Make released key polling wait for exact time until key
|
||||
gets released
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 16 ++++++++++++++--
|
||||
src/libcec/CECClient.h | 2 +-
|
||||
src/libcec/CECProcessor.cpp | 8 +++++---
|
||||
src/libcec/LibCEC.cpp | 10 ++++++++--
|
||||
src/libcec/LibCEC.h | 4 +++-
|
||||
5 files changed, 31 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index 35c2d3e..e307c0e 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -1067,7 +1067,7 @@ void CCECClient::SetCurrentButton(const cec_user_control_code iButtonCode)
|
||||
AddKey(key);
|
||||
}
|
||||
|
||||
-void CCECClient::CheckKeypressTimeout(void)
|
||||
+uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
{
|
||||
cec_keypress key;
|
||||
|
||||
@@ -1091,12 +1091,24 @@ void CCECClient::CheckKeypressTimeout(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
- return;
|
||||
+ // time when this keypress will be released and we'd like to be called again
|
||||
+ unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
+ timeout = iTimeoutMs - (iNow - m_buttontime) + 1;
|
||||
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
|
||||
+ timeout = CEC_BUTTON_TIMEOUT - (iNow - m_buttontime) + 1;
|
||||
+ if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_buttontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
+ timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
+ }
|
||||
+ return timeout;
|
||||
}
|
||||
}
|
||||
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key auto-released: %s (%1x)", ToString(key.keycode), key.keycode);
|
||||
QueueAddKey(key);
|
||||
+ return CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
|
||||
bool CCECClient::EnableCallbacks(void *cbParam, ICECCallbacks *callbacks)
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index 12f8a3b..c9ce5e3 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -272,7 +272,7 @@ namespace CEC
|
||||
virtual void AddKey(bool bSendComboKey = false);
|
||||
virtual void AddKey(const cec_keypress &key);
|
||||
virtual void SetCurrentButton(const cec_user_control_code iButtonCode);
|
||||
- virtual void CheckKeypressTimeout(void);
|
||||
+ virtual uint16_t CheckKeypressTimeout(void);
|
||||
virtual void SourceActivated(const cec_logical_address logicalAddress);
|
||||
virtual void SourceDeactivated(const cec_logical_address logicalAddress);
|
||||
|
||||
diff --git a/src/libcec/CECProcessor.cpp b/src/libcec/CECProcessor.cpp
|
||||
index 99f71aa..604b950 100644
|
||||
--- a/src/libcec/CECProcessor.cpp
|
||||
+++ b/src/libcec/CECProcessor.cpp
|
||||
@@ -52,7 +52,6 @@
|
||||
using namespace CEC;
|
||||
using namespace PLATFORM;
|
||||
|
||||
-#define CEC_PROCESSOR_SIGNAL_WAIT_TIME 1000
|
||||
#define ACTIVE_SOURCE_CHECK_INTERVAL 500
|
||||
#define TV_PRESENT_CHECK_INTERVAL 30000
|
||||
|
||||
@@ -260,6 +259,7 @@ bool CCECProcessor::OnCommandReceived(const cec_command &command)
|
||||
|
||||
void *CCECProcessor::Process(void)
|
||||
{
|
||||
+ uint16_t timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
m_libcec->AddLog(CEC_LOG_DEBUG, "processor thread started");
|
||||
|
||||
if (!m_connCheck)
|
||||
@@ -274,13 +274,13 @@ void *CCECProcessor::Process(void)
|
||||
while (!IsStopped() && m_communication->IsOpen())
|
||||
{
|
||||
// wait for a new incoming command, and process it
|
||||
- if (m_inBuffer.Pop(command, CEC_PROCESSOR_SIGNAL_WAIT_TIME))
|
||||
+ if (m_inBuffer.Pop(command, timeout))
|
||||
ProcessCommand(command);
|
||||
|
||||
if (CECInitialised() && !IsStopped())
|
||||
{
|
||||
// check clients for keypress timeouts
|
||||
- m_libcec->CheckKeypressTimeout();
|
||||
+ timeout = m_libcec->CheckKeypressTimeout();
|
||||
|
||||
// check if we need to replace handlers
|
||||
ReplaceHandlers();
|
||||
@@ -311,6 +311,8 @@ void *CCECProcessor::Process(void)
|
||||
tvPresentCheck.Init(TV_PRESENT_CHECK_INTERVAL);
|
||||
}
|
||||
}
|
||||
+ else
|
||||
+ timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
diff --git a/src/libcec/LibCEC.cpp b/src/libcec/LibCEC.cpp
|
||||
index af36b79..5ccb8dd 100644
|
||||
--- a/src/libcec/LibCEC.cpp
|
||||
+++ b/src/libcec/LibCEC.cpp
|
||||
@@ -361,11 +361,17 @@ bool CLibCEC::IsValidPhysicalAddress(uint16_t iPhysicalAddress)
|
||||
iPhysicalAddress <= CEC_MAX_PHYSICAL_ADDRESS;
|
||||
}
|
||||
|
||||
-void CLibCEC::CheckKeypressTimeout(void)
|
||||
+uint16_t CLibCEC::CheckKeypressTimeout(void)
|
||||
{
|
||||
+ uint16_t timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
// check all clients
|
||||
for (std::vector<CECClientPtr>::iterator it = m_clients.begin(); it != m_clients.end(); it++)
|
||||
- (*it)->CheckKeypressTimeout();
|
||||
+ {
|
||||
+ uint16_t t = (*it)->CheckKeypressTimeout();
|
||||
+ if (t < timeout)
|
||||
+ timeout = t;
|
||||
+ }
|
||||
+ return timeout;
|
||||
}
|
||||
|
||||
void CLibCEC::AddLog(const cec_log_level level, const char *strFormat, ...)
|
||||
diff --git a/src/libcec/LibCEC.h b/src/libcec/LibCEC.h
|
||||
index 6d9a229..d9d1e7b 100644
|
||||
--- a/src/libcec/LibCEC.h
|
||||
+++ b/src/libcec/LibCEC.h
|
||||
@@ -39,6 +39,8 @@
|
||||
#include "CECTypeUtils.h"
|
||||
#include <memory>
|
||||
|
||||
+#define CEC_PROCESSOR_SIGNAL_WAIT_TIME 1000
|
||||
+
|
||||
namespace CEC
|
||||
{
|
||||
class CAdapterCommunication;
|
||||
@@ -125,7 +127,7 @@ namespace CEC
|
||||
|
||||
void AddLog(const cec_log_level level, const char *strFormat, ...);
|
||||
void AddCommand(const cec_command &command);
|
||||
- void CheckKeypressTimeout(void);
|
||||
+ uint16_t CheckKeypressTimeout(void);
|
||||
void Alert(const libcec_alert type, const libcec_parameter ¶m);
|
||||
|
||||
static bool IsValidPhysicalAddress(uint16_t iPhysicalAddress);
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 41f0f3ec9ac136da3565c96fd5a7075499f3938d Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Fri, 24 Oct 2014 13:51:34 +0100
|
||||
Subject: [PATCH 2/6] Keep track of time since initial button press and last
|
||||
button update
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 44 +++++++++++++++++++++++++++-----------------
|
||||
src/libcec/CECClient.h | 3 ++-
|
||||
2 files changed, 29 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index e307c0e..e7935b9 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -54,7 +54,8 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
|
||||
m_bInitialised(false),
|
||||
m_bRegistered(false),
|
||||
m_iCurrentButton(CEC_USER_CONTROL_CODE_UNKNOWN),
|
||||
- m_buttontime(0),
|
||||
+ m_initialButtontime(0),
|
||||
+ m_updateButtontime(0),
|
||||
m_iPreventForwardingPowerOffCommand(0),
|
||||
m_iLastKeypressTime(0)
|
||||
{
|
||||
@@ -981,9 +982,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
CLockObject lock(m_mutex);
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
{
|
||||
- key.duration = (unsigned int) (GetTimeMs() - m_buttontime);
|
||||
+ unsigned int duration = (unsigned int) (GetTimeMs() - m_updateButtontime);
|
||||
+ key.duration = (unsigned int) (GetTimeMs() - m_initialButtontime);
|
||||
|
||||
- if (key.duration > m_configuration.iComboKeyTimeoutMs ||
|
||||
+ if (duration > m_configuration.iComboKeyTimeoutMs ||
|
||||
m_configuration.iComboKeyTimeoutMs == 0 ||
|
||||
m_iCurrentButton != m_configuration.comboKey ||
|
||||
bSendComboKey)
|
||||
@@ -991,14 +993,15 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
key.keycode = m_iCurrentButton;
|
||||
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
- m_buttontime = 0;
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x)", ToString(key.keycode), key.keycode);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
|
||||
QueueAddKey(key);
|
||||
}
|
||||
}
|
||||
@@ -1012,7 +1015,7 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
AddKey();
|
||||
return;
|
||||
}
|
||||
-
|
||||
+ bool isrepeat = false;
|
||||
cec_keypress transmitKey(key);
|
||||
cec_user_control_code comboKey(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.comboKey : CEC_USER_CONTROL_CODE_STOP);
|
||||
@@ -1035,22 +1038,27 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
AddKey(true);
|
||||
}
|
||||
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x) current(%lx) duration(%d)", ToString(transmitKey.keycode), transmitKey.keycode, m_iCurrentButton, key.duration);
|
||||
+
|
||||
if (m_iCurrentButton == key.keycode)
|
||||
{
|
||||
- m_buttontime = GetTimeMs();
|
||||
+ m_updateButtontime = GetTimeMs();
|
||||
+ isrepeat = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
- AddKey();
|
||||
+ if (m_iCurrentButton != transmitKey.keycode)
|
||||
+ AddKey();
|
||||
if (key.duration == 0)
|
||||
{
|
||||
m_iCurrentButton = transmitKey.keycode;
|
||||
- m_buttontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
|
||||
+ m_initialButtontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
|
||||
+ m_updateButtontime = m_initialButtontime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- if (key.keycode != comboKey || key.duration > 0)
|
||||
+ if (!isrepeat && (key.keycode != comboKey || key.duration > 0))
|
||||
{
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x)", ToString(transmitKey.keycode), transmitKey.keycode);
|
||||
QueueAddKey(transmitKey);
|
||||
@@ -1074,32 +1082,34 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
uint64_t iNow = GetTimeMs();
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s T:%.3f", __FUNCTION__, iNow*1e-3);
|
||||
cec_user_control_code comboKey(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.comboKey : CEC_USER_CONTROL_CODE_STOP);
|
||||
uint32_t iTimeoutMs(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_buttontime > iTimeoutMs) ||
|
||||
- (m_iCurrentButton != comboKey && iNow - m_buttontime > CEC_BUTTON_TIMEOUT)))
|
||||
+ ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime > iTimeoutMs) ||
|
||||
+ (m_iCurrentButton != comboKey && iNow - m_updateButtontime > CEC_BUTTON_TIMEOUT)))
|
||||
{
|
||||
- key.duration = (unsigned int) (iNow - m_buttontime);
|
||||
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
- m_buttontime = 0;
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// time when this keypress will be released and we'd like to be called again
|
||||
unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
- timeout = iTimeoutMs - (iNow - m_buttontime) + 1;
|
||||
+ timeout = iTimeoutMs - (iNow - m_updateButtontime) + 1;
|
||||
else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
|
||||
- timeout = CEC_BUTTON_TIMEOUT - (iNow - m_buttontime) + 1;
|
||||
+ timeout = CEC_BUTTON_TIMEOUT - (iNow - m_updateButtontime) + 1;
|
||||
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_buttontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
return timeout;
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index c9ce5e3..611c68b 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -404,7 +404,8 @@ namespace CEC
|
||||
PLATFORM::CMutex m_mutex; /**< mutex for changes to this instance */
|
||||
PLATFORM::CMutex m_cbMutex; /**< mutex that is held when doing anything with callbacks */
|
||||
cec_user_control_code m_iCurrentButton; /**< the control code of the button that's currently held down (if any) */
|
||||
- int64_t m_buttontime; /**< the timestamp when the button was pressed (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int64_t m_initialButtontime; /**< the timestamp when the button was initially pressed (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int64_t m_updateButtontime; /**< the timestamp when the button was updated (in seconds since epoch), or 0 if none was pressed. */
|
||||
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
|
||||
int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
|
||||
cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 273ead6980b69eddf98810eb1eb33d94a7d74fce Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 28 Oct 2014 00:09:18 +0000
|
||||
Subject: [PATCH 3/6] Support repeating button presses with configurable repeat
|
||||
rate
|
||||
|
||||
---
|
||||
include/cectypes.h | 6 ++
|
||||
src/libcec/CECClient.cpp | 100 +++++++++++++++++++----
|
||||
src/libcec/CECClient.h | 6 +-
|
||||
src/libcec/implementations/CECCommandHandler.cpp | 2 +-
|
||||
4 files changed, 96 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/include/cectypes.h b/include/cectypes.h
|
||||
index acff259..8f098ef 100644
|
||||
--- a/include/cectypes.h
|
||||
+++ b/include/cectypes.h
|
||||
@@ -1493,6 +1493,8 @@ struct libcec_configuration
|
||||
XXX changed meaning in 2.2.0 to not break binary compatibility. next major (3.0) release will fix it in a nicer way */
|
||||
cec_user_control_code comboKey; /*!< key code that initiates combo keys. defaults to CEC_USER_CONTROL_CODE_F1_BLUE. CEC_USER_CONTROL_CODE_UNKNOWN to disable. added in 2.0.5 */
|
||||
uint32_t iComboKeyTimeoutMs; /*!< timeout until the combo key is sent as normal keypress */
|
||||
+ uint32_t iButtonRepeatRateMs; /*!< rate at which buttons autorepeat. 0 means rely on CEC device */
|
||||
+ uint32_t iButtonReleaseDelayMs;/*!< duration after last update until a button is considered released */
|
||||
|
||||
#ifdef __cplusplus
|
||||
libcec_configuration(void) { Clear(); }
|
||||
@@ -1527,6 +1529,8 @@ struct libcec_configuration
|
||||
cecVersion == other.cecVersion &&
|
||||
adapterType == other.adapterType &&
|
||||
iDoubleTapTimeout50Ms == other.iDoubleTapTimeout50Ms &&
|
||||
+ iButtonRepeatRateMs == other.iButtonRepeatRateMs &&
|
||||
+ iButtonReleaseDelayMs == other.iButtonReleaseDelayMs &&
|
||||
(other.clientVersion <= LIBCEC_VERSION_TO_UINT(2, 0, 4) || comboKey == other.comboKey) &&
|
||||
(other.clientVersion <= LIBCEC_VERSION_TO_UINT(2, 0, 4) || iComboKeyTimeoutMs == other.iComboKeyTimeoutMs) &&
|
||||
(other.clientVersion < LIBCEC_VERSION_TO_UINT(2, 1, 0) || bPowerOnScreensaver == other.bPowerOnScreensaver));
|
||||
@@ -1567,6 +1571,8 @@ struct libcec_configuration
|
||||
iDoubleTapTimeout50Ms = CEC_DOUBLE_TAP_TIMEOUT_50_MS;
|
||||
comboKey = CEC_USER_CONTROL_CODE_STOP;
|
||||
iComboKeyTimeoutMs = CEC_DEFAULT_COMBO_TIMEOUT_MS;
|
||||
+ iButtonRepeatRateMs = 0;
|
||||
+ iButtonReleaseDelayMs = CEC_BUTTON_TIMEOUT;
|
||||
|
||||
memset(strDeviceName, 0, 13);
|
||||
deviceTypes.Clear();
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index e7935b9..598628d 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -56,6 +56,10 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
|
||||
m_iCurrentButton(CEC_USER_CONTROL_CODE_UNKNOWN),
|
||||
m_initialButtontime(0),
|
||||
m_updateButtontime(0),
|
||||
+ m_repeatButtontime(0),
|
||||
+ m_releaseButtontime(0),
|
||||
+ m_pressedButtoncount(0),
|
||||
+ m_releasedButtoncount(0),
|
||||
m_iPreventForwardingPowerOffCommand(0),
|
||||
m_iLastKeypressTime(0)
|
||||
{
|
||||
@@ -851,6 +855,9 @@ bool CCECClient::GetCurrentConfiguration(libcec_configuration &configuration)
|
||||
configuration.bMonitorOnly = m_configuration.bMonitorOnly;
|
||||
configuration.cecVersion = m_configuration.cecVersion;
|
||||
configuration.adapterType = m_configuration.adapterType;
|
||||
+ configuration.iDoubleTapTimeout50Ms = m_configuration.iDoubleTapTimeout50Ms;
|
||||
+ configuration.iButtonRepeatRateMs = m_configuration.iButtonRepeatRateMs;
|
||||
+ configuration.iButtonReleaseDelayMs = m_configuration.iButtonReleaseDelayMs;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -894,6 +901,9 @@ bool CCECClient::SetConfiguration(const libcec_configuration &configuration)
|
||||
m_configuration.cecVersion = configuration.cecVersion;
|
||||
m_configuration.adapterType = configuration.adapterType;
|
||||
m_configuration.iDoubleTapTimeout50Ms = configuration.iDoubleTapTimeout50Ms;
|
||||
+ m_configuration.iButtonRepeatRateMs = configuration.iButtonRepeatRateMs;
|
||||
+ m_configuration.iButtonReleaseDelayMs = configuration.iButtonReleaseDelayMs;
|
||||
+
|
||||
m_configuration.deviceTypes.Add(configuration.deviceTypes[0]);
|
||||
|
||||
if (m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5))
|
||||
@@ -950,6 +960,7 @@ bool CCECClient::SetConfiguration(const libcec_configuration &configuration)
|
||||
primary->ActivateSource();
|
||||
}
|
||||
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s: %d:%d:%d", __FUNCTION__, DoubleTapTimeoutMS(), m_configuration.iButtonRepeatRateMs, m_configuration.iButtonReleaseDelayMs);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -973,11 +984,15 @@ void CCECClient::AddCommand(const cec_command &command)
|
||||
}
|
||||
}
|
||||
|
||||
-void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
+void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /* = false */)
|
||||
{
|
||||
cec_keypress key;
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
|
||||
+ // we ignore button releases when supporting repeating keys
|
||||
+ if (bButtonRelease && m_configuration.iButtonRepeatRateMs && m_configuration.iButtonReleaseDelayMs)
|
||||
+ return;
|
||||
+
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
@@ -995,6 +1010,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */)
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
m_initialButtontime = 0;
|
||||
m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1012,6 +1031,7 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
key.keycode < CEC_USER_CONTROL_CODE_SELECT)
|
||||
{
|
||||
// send back the previous key if there is one
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Unexpected key %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
|
||||
AddKey();
|
||||
return;
|
||||
}
|
||||
@@ -1035,7 +1055,10 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
transmitKey.keycode = CEC_USER_CONTROL_CODE_DOT;
|
||||
// default, send back the previous key
|
||||
else
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Combo key %s (%1x) D%dms:", ToString(key.keycode), key.keycode, key.duration);
|
||||
AddKey(true);
|
||||
+ }
|
||||
}
|
||||
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x) current(%lx) duration(%d)", ToString(transmitKey.keycode), transmitKey.keycode, m_iCurrentButton, key.duration);
|
||||
@@ -1043,17 +1066,44 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
if (m_iCurrentButton == key.keycode)
|
||||
{
|
||||
m_updateButtontime = GetTimeMs();
|
||||
- isrepeat = true;
|
||||
+ m_releaseButtontime = m_updateButtontime + (m_configuration.iButtonReleaseDelayMs ? m_configuration.iButtonReleaseDelayMs : CEC_BUTTON_TIMEOUT);
|
||||
+ // want to have seen some updated before considering a repeat
|
||||
+ if (m_configuration.iButtonRepeatRateMs)
|
||||
+ {
|
||||
+ if (!m_repeatButtontime && m_pressedButtoncount > 1)
|
||||
+ m_repeatButtontime = m_initialButtontime + DoubleTapTimeoutMS();
|
||||
+ isrepeat = true;
|
||||
+ }
|
||||
+ m_pressedButtoncount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_iCurrentButton != transmitKey.keycode)
|
||||
+ {
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Changed key %s (%1x) D:%dms cur:%lx", ToString(transmitKey.keycode), transmitKey.keycode, transmitKey.duration, m_iCurrentButton);
|
||||
AddKey();
|
||||
+ }
|
||||
if (key.duration == 0)
|
||||
{
|
||||
m_iCurrentButton = transmitKey.keycode;
|
||||
- m_initialButtontime = m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN || key.duration > 0 ? 0 : GetTimeMs();
|
||||
- m_updateButtontime = m_initialButtontime;
|
||||
+ if (m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
+ {
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ m_initialButtontime = GetTimeMs();
|
||||
+ m_updateButtontime = m_initialButtontime;
|
||||
+ m_repeatButtontime = 0; // set this on next update
|
||||
+ m_releaseButtontime = m_initialButtontime + (m_configuration.iButtonReleaseDelayMs ? m_configuration.iButtonReleaseDelayMs : CEC_BUTTON_TIMEOUT);
|
||||
+ m_pressedButtoncount = 1;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1072,12 +1122,16 @@ void CCECClient::SetCurrentButton(const cec_user_control_code iButtonCode)
|
||||
key.duration = 0;
|
||||
key.keycode = iButtonCode;
|
||||
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "SetCurrentButton %s (%1x) D:%dms cur:%lx", ToString(key.keycode), key.keycode, key.duration);
|
||||
AddKey(key);
|
||||
}
|
||||
|
||||
uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
{
|
||||
+ // time when we'd like to be called again
|
||||
+ unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
cec_keypress key;
|
||||
+ key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
@@ -1089,8 +1143,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime > iTimeoutMs) ||
|
||||
- (m_iCurrentButton != comboKey && iNow - m_updateButtontime > CEC_BUTTON_TIMEOUT)))
|
||||
+ ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs) ||
|
||||
+ (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)))
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1098,27 +1152,41 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
m_initialButtontime = 0;
|
||||
m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
+ (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
|
||||
+ {
|
||||
+ key.duration = 0;
|
||||
+ key.keycode = m_iCurrentButton;
|
||||
+ m_repeatButtontime = iNow + m_configuration.iButtonRepeatRateMs;
|
||||
+ timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
}
|
||||
else
|
||||
{
|
||||
- // time when this keypress will be released and we'd like to be called again
|
||||
- unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
- timeout = iTimeoutMs - (iNow - m_updateButtontime) + 1;
|
||||
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey)
|
||||
- timeout = CEC_BUTTON_TIMEOUT - (iNow - m_updateButtontime) + 1;
|
||||
+ timeout = std::min((uint64_t)timeout, m_updateButtontime - iNow + iTimeoutMs);
|
||||
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_releaseButtontime)
|
||||
+ timeout = std::min((uint64_t)timeout, m_releaseButtontime - iNow);
|
||||
+ if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_repeatButtontime)
|
||||
+ timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, CEC_BUTTON_TIMEOUT*1e-3, m_iCurrentButton);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_ERROR, "Unexpected timeout: %d (%.3f %.3f %.3f) k:%02x", timeout, iNow*1e-3, m_updateButtontime*1e-3, m_releaseButtontime*1e-3, m_iCurrentButton);
|
||||
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
- return timeout;
|
||||
}
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key %s: %s (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : key.duration ? "released" : "repeated",
|
||||
+ ToString(m_iCurrentButton), m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
|
||||
}
|
||||
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key auto-released: %s (%1x)", ToString(key.keycode), key.keycode);
|
||||
- QueueAddKey(key);
|
||||
- return CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
+ if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
+ QueueAddKey(key);
|
||||
+
|
||||
+ return timeout;
|
||||
}
|
||||
|
||||
bool CCECClient::EnableCallbacks(void *cbParam, ICECCallbacks *callbacks)
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index 611c68b..adeb5af 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -269,7 +269,7 @@ namespace CEC
|
||||
// callbacks
|
||||
virtual void Alert(const libcec_alert type, const libcec_parameter ¶m) { QueueAlert(type, param); }
|
||||
virtual void AddLog(const cec_log_message &message) { QueueAddLog(message); }
|
||||
- virtual void AddKey(bool bSendComboKey = false);
|
||||
+ virtual void AddKey(bool bSendComboKey = false, bool bButtonRelease = false);
|
||||
virtual void AddKey(const cec_keypress &key);
|
||||
virtual void SetCurrentButton(const cec_user_control_code iButtonCode);
|
||||
virtual uint16_t CheckKeypressTimeout(void);
|
||||
@@ -406,6 +406,10 @@ namespace CEC
|
||||
cec_user_control_code m_iCurrentButton; /**< the control code of the button that's currently held down (if any) */
|
||||
int64_t m_initialButtontime; /**< the timestamp when the button was initially pressed (in seconds since epoch), or 0 if none was pressed. */
|
||||
int64_t m_updateButtontime; /**< the timestamp when the button was updated (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int64_t m_repeatButtontime; /**< the timestamp when the button will next repeat (in seconds since epoch), or 0 if repeat is disabled. */
|
||||
+ int64_t m_releaseButtontime; /**< the timestamp when the button will be released (in seconds since epoch), or 0 if none was pressed. */
|
||||
+ int32_t m_pressedButtoncount; /**< the number of times a button released message has been seen for this press. */
|
||||
+ int32_t m_releasedButtoncount; /**< the number of times a button pressed message has been seen for this press. */
|
||||
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
|
||||
int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
|
||||
cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
|
||||
diff --git a/src/libcec/implementations/CECCommandHandler.cpp b/src/libcec/implementations/CECCommandHandler.cpp
|
||||
index 6d6244e..d64186f 100644
|
||||
--- a/src/libcec/implementations/CECCommandHandler.cpp
|
||||
+++ b/src/libcec/implementations/CECCommandHandler.cpp
|
||||
@@ -770,7 +770,7 @@ int CCECCommandHandler::HandleUserControlRelease(const cec_command &command)
|
||||
|
||||
CECClientPtr client = m_processor->GetClient(command.destination);
|
||||
if (client)
|
||||
- client->AddKey();
|
||||
+ client->AddKey(false, true);
|
||||
|
||||
return COMMAND_HANDLED;
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 3336d0827f7fd159430f3431642b07090c06c869 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Tue, 28 Oct 2014 01:21:35 +0000
|
||||
Subject: [PATCH 4/6] Skip double press removal. It is handled through other
|
||||
means.
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 18 +-----------------
|
||||
src/libcec/CECClient.h | 2 --
|
||||
2 files changed, 1 insertion(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index 598628d..dccd874 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -60,11 +60,8 @@ CCECClient::CCECClient(CCECProcessor *processor, const libcec_configuration &con
|
||||
m_releaseButtontime(0),
|
||||
m_pressedButtoncount(0),
|
||||
m_releasedButtoncount(0),
|
||||
- m_iPreventForwardingPowerOffCommand(0),
|
||||
- m_iLastKeypressTime(0)
|
||||
+ m_iPreventForwardingPowerOffCommand(0)
|
||||
{
|
||||
- m_lastKeypress.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
- m_lastKeypress.duration = 0;
|
||||
m_configuration.Clear();
|
||||
// set the initial configuration
|
||||
SetConfiguration(configuration);
|
||||
@@ -1647,20 +1644,7 @@ void CCECClient::CallbackAddKey(const cec_keypress &key)
|
||||
{
|
||||
CLockObject lock(m_cbMutex);
|
||||
if (m_configuration.callbacks && m_configuration.callbacks->CBCecKeyPress)
|
||||
- {
|
||||
- // prevent double taps
|
||||
- int64_t now = GetTimeMs();
|
||||
- if (m_lastKeypress.keycode != key.keycode ||
|
||||
- key.duration > 0 ||
|
||||
- now - m_iLastKeypressTime >= DoubleTapTimeoutMS())
|
||||
- {
|
||||
- // no double tap
|
||||
- if (key.duration == 0)
|
||||
- m_iLastKeypressTime = now;
|
||||
- m_lastKeypress = key;
|
||||
m_configuration.callbacks->CBCecKeyPress(m_configuration.callbackParam, key);
|
||||
- }
|
||||
- }
|
||||
}
|
||||
|
||||
void CCECClient::CallbackAddLog(const cec_log_message &message)
|
||||
diff --git a/src/libcec/CECClient.h b/src/libcec/CECClient.h
|
||||
index adeb5af..43a713b 100644
|
||||
--- a/src/libcec/CECClient.h
|
||||
+++ b/src/libcec/CECClient.h
|
||||
@@ -411,8 +411,6 @@ namespace CEC
|
||||
int32_t m_pressedButtoncount; /**< the number of times a button released message has been seen for this press. */
|
||||
int32_t m_releasedButtoncount; /**< the number of times a button pressed message has been seen for this press. */
|
||||
int64_t m_iPreventForwardingPowerOffCommand; /**< prevent forwarding standby commands until this time */
|
||||
- int64_t m_iLastKeypressTime; /**< last time a key press was sent to the client */
|
||||
- cec_keypress m_lastKeypress; /**< the last key press that was sent to the client */
|
||||
PLATFORM::SyncedBuffer<CCallbackWrap*> m_callbackCalls;
|
||||
};
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 0dd0234f620a546bfa843172648383f83d88088c Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Mon, 3 Nov 2014 23:28:04 +0000
|
||||
Subject: [PATCH 5/6] Pass through duration on all button repeats
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 34 ++++++++++++++++++++++++----------
|
||||
1 file changed, 24 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index dccd874..1946148 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -986,10 +986,6 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /*
|
||||
cec_keypress key;
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
|
||||
- // we ignore button releases when supporting repeating keys
|
||||
- if (bButtonRelease && m_configuration.iButtonRepeatRateMs && m_configuration.iButtonReleaseDelayMs)
|
||||
- return;
|
||||
-
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
@@ -1015,6 +1011,10 @@ void CCECClient::AddKey(bool bSendComboKey /* = false */, bool bButtonRelease /*
|
||||
}
|
||||
}
|
||||
|
||||
+ // we don't forward releases when supporting repeating keys
|
||||
+ if (bButtonRelease && m_configuration.iButtonRepeatRateMs)
|
||||
+ return;
|
||||
+
|
||||
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
{
|
||||
LIB_CEC->AddLog(CEC_LOG_DEBUG, "key released: %s (%1x) D:%dms", ToString(key.keycode), key.keycode, key.duration);
|
||||
@@ -1107,7 +1107,7 @@ void CCECClient::AddKey(const cec_keypress &key)
|
||||
|
||||
if (!isrepeat && (key.keycode != comboKey || key.duration > 0))
|
||||
{
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x)", ToString(transmitKey.keycode), transmitKey.keycode);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "key pressed: %s (%1x, %d)", ToString(transmitKey.keycode), transmitKey.keycode, transmitKey.duration);
|
||||
QueueAddKey(transmitKey);
|
||||
}
|
||||
}
|
||||
@@ -1129,6 +1129,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
unsigned int timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
cec_keypress key;
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
+ key.duration = 0;
|
||||
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
@@ -1140,8 +1141,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- ((m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs) ||
|
||||
- (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)))
|
||||
+ m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1155,9 +1155,23 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_releasedButtoncount = 0;
|
||||
}
|
||||
else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
+ m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
|
||||
+ {
|
||||
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
+ key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
+
|
||||
+ m_iCurrentButton = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
+ m_initialButtontime = 0;
|
||||
+ m_updateButtontime = 0;
|
||||
+ m_repeatButtontime = 0;
|
||||
+ m_releaseButtontime = 0;
|
||||
+ m_pressedButtoncount = 0;
|
||||
+ m_releasedButtoncount = 0;
|
||||
+ }
|
||||
+ else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
(m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
|
||||
{
|
||||
- key.duration = 0;
|
||||
+ key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
m_repeatButtontime = iNow + m_configuration.iButtonRepeatRateMs;
|
||||
timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
@@ -1176,8 +1190,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
timeout = CEC_PROCESSOR_SIGNAL_WAIT_TIME;
|
||||
}
|
||||
}
|
||||
- LIB_CEC->AddLog(CEC_LOG_DEBUG, "key %s: %s (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : key.duration ? "released" : "repeated",
|
||||
- ToString(m_iCurrentButton), m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
|
||||
+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "Key %s: %s (duration:%d) (%1x) timeout:%dms (rel:%d,rep:%d,prs:%d,rel:%d)", ToString(m_iCurrentButton), key.keycode == CEC_USER_CONTROL_CODE_UNKNOWN ? "idle" : m_repeatButtontime ? "repeated" : "released", key.duration,
|
||||
+ m_iCurrentButton, timeout, (int)(m_releaseButtontime ? m_releaseButtontime - iNow : 0), (int)(m_repeatButtontime ? m_repeatButtontime - iNow : 0), m_pressedButtoncount, m_releasedButtoncount);
|
||||
}
|
||||
|
||||
if (key.keycode != CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 1ea01f59d8186d4d53af41961aaccbbc11651115 Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Wed, 5 Nov 2014 21:04:25 +0000
|
||||
Subject: [PATCH 6/6] squash: Fix for stop needing to be pressed twice
|
||||
|
||||
---
|
||||
src/libcec/CECClient.cpp | 17 ++++++++---------
|
||||
1 file changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp
|
||||
index 1946148..f4f114b 100644
|
||||
--- a/src/libcec/CECClient.cpp
|
||||
+++ b/src/libcec/CECClient.cpp
|
||||
@@ -1131,6 +1131,8 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
key.duration = 0;
|
||||
|
||||
+ if (m_iCurrentButton == CEC_USER_CONTROL_CODE_UNKNOWN)
|
||||
+ return timeout;
|
||||
{
|
||||
CLockObject lock(m_mutex);
|
||||
uint64_t iNow = GetTimeMs();
|
||||
@@ -1140,8 +1142,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
uint32_t iTimeoutMs(m_configuration.clientVersion >= LIBCEC_VERSION_TO_UINT(2, 0, 5) ?
|
||||
m_configuration.iComboKeyTimeoutMs : CEC_DEFAULT_COMBO_TIMEOUT_MS);
|
||||
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
|
||||
+ if (m_iCurrentButton == comboKey && iTimeoutMs > 0 && iNow - m_updateButtontime >= iTimeoutMs)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1154,8 +1155,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_pressedButtoncount = 0;
|
||||
m_releasedButtoncount = 0;
|
||||
}
|
||||
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
|
||||
+ else if (m_iCurrentButton != comboKey && m_releaseButtontime && iNow >= (uint64_t)m_releaseButtontime)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = CEC_USER_CONTROL_CODE_UNKNOWN;
|
||||
@@ -1168,8 +1168,7 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
m_pressedButtoncount = 0;
|
||||
m_releasedButtoncount = 0;
|
||||
}
|
||||
- else if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN &&
|
||||
- (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime))
|
||||
+ else if (m_iCurrentButton != comboKey && m_repeatButtontime && iNow >= (uint64_t)m_repeatButtontime)
|
||||
{
|
||||
key.duration = (unsigned int) (iNow - m_initialButtontime);
|
||||
key.keycode = m_iCurrentButton;
|
||||
@@ -1178,11 +1177,11 @@ uint16_t CCECClient::CheckKeypressTimeout(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
+ if (m_iCurrentButton == comboKey && iTimeoutMs > 0)
|
||||
timeout = std::min((uint64_t)timeout, m_updateButtontime - iNow + iTimeoutMs);
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_releaseButtontime)
|
||||
+ if (m_iCurrentButton != comboKey && m_releaseButtontime)
|
||||
timeout = std::min((uint64_t)timeout, m_releaseButtontime - iNow);
|
||||
- if (m_iCurrentButton != CEC_USER_CONTROL_CODE_UNKNOWN && m_iCurrentButton != comboKey && m_repeatButtontime)
|
||||
+ if (m_iCurrentButton != comboKey && m_repeatButtontime)
|
||||
timeout = std::min((uint64_t)timeout, m_repeatButtontime - iNow);
|
||||
if (timeout > CEC_PROCESSOR_SIGNAL_WAIT_TIME)
|
||||
{
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -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;
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libffi"
|
||||
PKG_VERSION="3.1"
|
||||
PKG_VERSION="3.2.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libirman"
|
||||
PKG_VERSION="0.4.5"
|
||||
PKG_VERSION="0.5.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -33,5 +33,5 @@ PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared HELP2MAN=/bin/true"
|
||||
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared"
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
diff -Naur a/Makefile.am b/Makefile.am
|
||||
--- a/Makefile.am 2015-01-20 07:34:33.000000000 -0800
|
||||
+++ b/Makefile.am 2015-10-27 11:16:49.027497480 -0700
|
||||
@@ -406,22 +406,6 @@
|
||||
$(AM_V_GEN)$(MAKEINFO) -P '$(srcdir)/doc' --no-headers \
|
||||
$(MAKEINFOFLAGS) -o '$@' '$(notes_texi)'
|
||||
|
||||
-dist_man1_MANS = $(libtool_1) $(libtoolize_1)
|
||||
-MAINTAINERCLEANFILES += $(dist_man1_MANS)
|
||||
-update_mans = \
|
||||
- PATH=".$(PATH_SEPARATOR)$$PATH"; export PATH; \
|
||||
- $(HELP2MAN) --output='$@'
|
||||
-
|
||||
-# It's wrong to make distributed files (e.g. $(libtool_1)) rely on
|
||||
-# files created in the build tree, so instead we regenerate the
|
||||
-# manual pages if the sources for the build-tree files we want to
|
||||
-# run have changed.
|
||||
-$(libtool_1): $(ltmain_sh)
|
||||
- $(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
|
||||
-$(libtoolize_1): $(libtoolize_in)
|
||||
- $(AM_V_GEN)$(update_mans) libtoolize
|
||||
-
|
||||
-
|
||||
## ------------- ##
|
||||
## Installation. ##
|
||||
## ------------- ##
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="m4"
|
||||
PKG_VERSION="1.4.16"
|
||||
PKG_VERSION="1.4.17"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
|
||||
index b7f3b6f..7a4f423 100644
|
||||
--- a/lib/stdio.in.h
|
||||
+++ b/lib/stdio.in.h
|
||||
@@ -162,7 +162,9 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
|
||||
so any use of gets warrants an unconditional warning. Assume it is
|
||||
always declared, since it is required by C89. */
|
||||
#undef gets
|
||||
+#if HAVE_RAW_DECL_GETS
|
||||
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
+#endif
|
||||
|
||||
#if @GNULIB_FOPEN@
|
||||
# if @REPLACE_FOPEN@
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="make"
|
||||
PKG_VERSION="4.0"
|
||||
PKG_VERSION="4.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.gnu.org/software/make/"
|
||||
PKG_URL="http://ftp.gnu.org/gnu/make/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://www.gnu.org/software/make/"
|
||||
PKG_URL="https://ftp.gnu.org/gnu/make/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_HOST=""
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="toolchain/devel"
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pcre"
|
||||
PKG_VERSION="8.37"
|
||||
PKG_VERSION="8.38"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_SITE="http://www.pcre.org/"
|
||||
PKG_URL="ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_URL="http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_HOST=""
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
PKG_PRIORITY="optional"
|
||||
@@ -52,4 +52,5 @@ pre_configure_target() {
|
||||
|
||||
post_makeinstall_target() {
|
||||
rm -rf $INSTALL/usr/bin
|
||||
sed -e "s:\(['= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" -i $SYSROOT_PREFIX/usr/bin/$PKG_NAME-config
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="pkg-config"
|
||||
PKG_VERSION="0.28"
|
||||
PKG_VERSION="0.29"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
@@ -38,5 +38,5 @@ PKG_CONFIGURE_OPTS_HOST="--disable-silent-rules \
|
||||
|
||||
post_makeinstall_host() {
|
||||
mkdir -p $SYSROOT_PREFIX/usr/share/aclocal
|
||||
cp ../pkg.m4 $SYSROOT_PREFIX/usr/share/aclocal
|
||||
cp pkg.m4 $SYSROOT_PREFIX/usr/share/aclocal
|
||||
}
|
||||
|
||||
@@ -17,12 +17,12 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="readline"
|
||||
PKG_VERSION="6.2"
|
||||
PKG_VERSION="6.3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="http://www.gnu.org/readline"
|
||||
PKG_URL="ftp://ftp.gnu.org/gnu/readline/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_URL="http://ftp.gnu.org/gnu/readline/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain ncurses"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="devel"
|
||||
@@ -32,7 +32,8 @@ PKG_IS_ADDON="no"
|
||||
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="--disable-shared \
|
||||
PKG_CONFIGURE_OPTS_TARGET="bash_cv_wcwidth_broken=no \
|
||||
--disable-shared \
|
||||
--enable-static \
|
||||
--with-curses \
|
||||
--without-purify"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="swig"
|
||||
PKG_VERSION="2.0.12"
|
||||
PKG_VERSION="3.0.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="47d51d6"
|
||||
PKG_VERSION="1efc1ec"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="giflib"
|
||||
PKG_VERSION="5.0.5"
|
||||
PKG_VERSION="5.1.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="glew"
|
||||
PKG_VERSION="1.10.0"
|
||||
PKG_VERSION="1.13.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
|
||||
@@ -1,26 +1,11 @@
|
||||
From ba254faae130080d5045d8fd97dc1f232b391d2f Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Saraev <stefan@saraev.ca>
|
||||
Date: Sat, 16 Aug 2014 17:03:32 +0300
|
||||
Subject: [PATCH] fix pkgconf
|
||||
|
||||
---
|
||||
glew.pc.in | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/glew.pc.in b/glew.pc.in
|
||||
index 4c934af..35ef2ac 100644
|
||||
--- a/glew.pc.in
|
||||
+++ b/glew.pc.in
|
||||
@@ -1,7 +1,7 @@
|
||||
diff -Naur glew-1.13.0/glew.pc.in glew-1.13.0.patch/glew.pc.in
|
||||
--- glew-1.13.0/glew.pc.in 2015-08-10 13:47:22.000000000 +0200
|
||||
+++ glew-1.13.0.patch/glew.pc.in 2015-11-19 10:01:42.694904497 +0100
|
||||
@@ -1,6 +1,6 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
exec_prefix=${prefix}
|
||||
-libdir=@libdir@
|
||||
-includedir=@includedir@
|
||||
+includedir=${prefix}/include
|
||||
+libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: glew
|
||||
Description: The OpenGL Extension Wrangler library
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
Fix CVE-2014-9029
|
||||
|
||||
Patch taken from https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2014-9029
|
||||
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
|
||||
--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:45:44.000000000 +0100
|
||||
+++ jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:44:58.000000000 +0100
|
||||
@@ -1281,7 +1281,7 @@ static int jpc_dec_process_coc(jpc_dec_t
|
||||
jpc_coc_t *coc = &ms->parms.coc;
|
||||
jpc_dec_tile_t *tile;
|
||||
|
||||
- if (JAS_CAST(int, coc->compno) > dec->numcomps) {
|
||||
+ if (JAS_CAST(int, coc->compno) >= dec->numcomps) {
|
||||
jas_eprintf("invalid component number in COC marker segment\n");
|
||||
return -1;
|
||||
}
|
||||
@@ -1307,7 +1307,7 @@ static int jpc_dec_process_rgn(jpc_dec_t
|
||||
jpc_rgn_t *rgn = &ms->parms.rgn;
|
||||
jpc_dec_tile_t *tile;
|
||||
|
||||
- if (JAS_CAST(int, rgn->compno) > dec->numcomps) {
|
||||
+ if (JAS_CAST(int, rgn->compno) >= dec->numcomps) {
|
||||
jas_eprintf("invalid component number in RGN marker segment\n");
|
||||
return -1;
|
||||
}
|
||||
@@ -1356,7 +1356,7 @@ static int jpc_dec_process_qcc(jpc_dec_t
|
||||
jpc_qcc_t *qcc = &ms->parms.qcc;
|
||||
jpc_dec_tile_t *tile;
|
||||
|
||||
- if (JAS_CAST(int, qcc->compno) > dec->numcomps) {
|
||||
+ if (JAS_CAST(int, qcc->compno) >= dec->numcomps) {
|
||||
jas_eprintf("invalid component number in QCC marker segment\n");
|
||||
return -1;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libdrm"
|
||||
PKG_VERSION="2.4.62"
|
||||
PKG_VERSION="2.4.66"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -22,12 +22,12 @@
|
||||
# in Xorg.log
|
||||
|
||||
PKG_NAME="libepoxy"
|
||||
PKG_VERSION="b2ae054"
|
||||
PKG_VERSION="1.3.1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/anholt/libepoxy"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_URL="https://github.com/anholt/libepoxy/releases/download/v$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||
PKG_DEPENDS_TARGET="toolchain $OPENGL"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="graphics"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libjpeg-turbo"
|
||||
PKG_VERSION="1.4.0"
|
||||
PKG_VERSION="1.4.2"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libpng"
|
||||
PKG_VERSION="1.6.17"
|
||||
PKG_VERSION="1.6.21"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
@@ -51,10 +51,8 @@ pre_configure_target() {
|
||||
|
||||
post_makeinstall_target() {
|
||||
sed -e "s:\([\"'= ]\)/usr:\\1$SYSROOT_PREFIX/usr:g" \
|
||||
-e "s:libs=\"-lpng15\":libs=\"-lpng15 -lz\":g" \
|
||||
-e "s:libs=\"-lpng16\":libs=\"-lpng16 -lz\":g" \
|
||||
-i $SYSROOT_PREFIX/usr/bin/libpng*-config
|
||||
|
||||
cp -P $SYSROOT_PREFIX/usr/bin/libpng*-config $ROOT/$TOOLCHAIN/bin
|
||||
|
||||
rm -rf $INSTALL/usr/bin
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mesa"
|
||||
PKG_VERSION="10.6.2"
|
||||
PKG_VERSION="11.0.8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="opengl-meson6"
|
||||
PKG_VERSION="r4p1-armhf"
|
||||
PKG_VERSION="r5p1-01rel0-armhf"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
||||
@@ -136,7 +136,7 @@ makeinstall_target() {
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib pydoc_data test unittest distutils"
|
||||
EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib pydoc_data test unittest"
|
||||
for dir in $EXCLUDE_DIRS; do
|
||||
rm -rf $INSTALL/usr/lib/python*/$dir
|
||||
done
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="yasm"
|
||||
PKG_VERSION="1.2.0"
|
||||
PKG_VERSION="1.3.0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="BSD"
|
||||
|
||||
@@ -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-2015 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
|
||||
@@ -16,29 +16,37 @@
|
||||
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mt7601u"
|
||||
PKG_VERSION="42f4084"
|
||||
PKG_NAME="RTL8192EU"
|
||||
PKG_VERSION="6793bae"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
# mediatek: PKG_SITE="http://www.mediatek.com/en/downloads/mt7601u-usb/"
|
||||
PKG_SITE="https://github.com/kuba-moo/mt7601u"
|
||||
PKG_SITE="https://github.com/Mange/rtl8192eu-linux-driver"
|
||||
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_DEPENDS_TARGET="toolchain linux"
|
||||
PKG_NEED_UNPACK="$LINUX_DEPENDS"
|
||||
PKG_PRIORITY="optional"
|
||||
PKG_SECTION="driver"
|
||||
PKG_SHORTDESC="mt7601u linux 3.19+ driver"
|
||||
PKG_LONGDESC="mt7601u linux 3.19+ driver"
|
||||
PKG_SHORTDESC="Realtek RTL8192EU Linux 3.x driver"
|
||||
PKG_LONGDESC="Realtek RTL8192EU Linux 3.x driver"
|
||||
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_make_target() {
|
||||
unset LDFLAGS
|
||||
}
|
||||
|
||||
make_target() {
|
||||
KDIR=$(kernel_path) make
|
||||
make V=1 \
|
||||
ARCH=$TARGET_ARCH \
|
||||
KSRC=$(kernel_path) \
|
||||
CROSS_COMPILE=$TARGET_PREFIX \
|
||||
CONFIG_POWER_SAVING=n \
|
||||
USER_EXTRA_CFLAGS="-Wno-error=date-time"
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p $INSTALL/lib/modules/$(get_module_dir)/$PKG_NAME
|
||||
cp $ROOT/$PKG_BUILD/mt7601u.ko $INSTALL/lib/modules/$(get_module_dir)/$PKG_NAME
|
||||
cp *.ko $INSTALL/lib/modules/$(get_module_dir)/$PKG_NAME
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
diff -Naur RTL8812AU-3f015f0/os_dep/linux/usb_intf.c RTL8812AU-3f015f0.patch/os_dep/linux/usb_intf.c
|
||||
--- RTL8812AU-3f015f0/os_dep/linux/usb_intf.c 2015-07-14 21:45:26.000000000 +0200
|
||||
+++ RTL8812AU-3f015f0.patch/os_dep/linux/usb_intf.c 2016-01-17 12:01:14.594776191 +0100
|
||||
@@ -278,7 +278,7 @@
|
||||
{USB_DEVICE(0x13B1, 0x003F),.driver_info = RTL8812}, /* Linksys - SerComm */
|
||||
{USB_DEVICE(0x2357, 0x0101),.driver_info = RTL8812}, /* TP-Link - T4U */
|
||||
{USB_DEVICE(0x148F, 0x9097),.driver_info = RTL8812}, /* Amped Wireless ACA1 */
|
||||
- {USB_DEVICE(0x2357, 0x0103),.driver_info = RTL8812}, /* TP-Link - T4UH */
|
||||
+ {USB_DEVICE(0x2357, 0x0103),.driver_info = RTL8812}, /* TP-Link - T4UH */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RTL8821A
|
||||
@@ -288,15 +288,19 @@
|
||||
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8822),.driver_info = RTL8821},/* Default ID */
|
||||
{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x0820,0xff,0xff,0xff),.driver_info = RTL8821}, /* 8821AU */
|
||||
/*=== Customer ID ===*/
|
||||
+ {USB_DEVICE(0x056e, 0x4007),.driver_info = RTL8821}, /* Elecom - WDC-433DU2HBK */
|
||||
{USB_DEVICE(0x7392, 0xA811),.driver_info = RTL8821}, /* Edimax - Edimax */
|
||||
- {USB_DEVICE(0x0BDA, 0xA811),.driver_info = RTL8821}, /* OUTLINK - Edimax */
|
||||
+ {USB_DEVICE(0x0BDA, 0xA811),.driver_info = RTL8821}, /* OUTLINK - Edimax */
|
||||
{USB_DEVICE(0x7392, 0xA812),.driver_info = RTL8821}, /* Edimax - Edimax */
|
||||
+ {USB_DEVICE(0x7392, 0xA813),.driver_info = RTL8821}, /* Edimax - EW-7811UAC */
|
||||
{USB_DEVICE(0x2001, 0x3314),.driver_info = RTL8821}, /* D-Link - Cameo */
|
||||
{USB_DEVICE(0x0846, 0x9052),.driver_info = RTL8821}, /* Netgear - A6100 */
|
||||
- {USB_DEVICE(0x04BB, 0x0953),.driver_info = RTL8821}, /* I-O DATA - Edimax */
|
||||
- {USB_DEVICE(0x2001, 0x3318),.driver_info = RTL8821}, /* D-Link - Cameo */
|
||||
- {USB_DEVICE(0x0E66, 0x0023),.driver_info = RTL8821}, /* HAWKING - Edimax */
|
||||
+ {USB_DEVICE(0x2019, 0xAB32),.driver_info = RTL8821}, /* Planex - GW-450S */
|
||||
+ {USB_DEVICE(0x04BB, 0x0953),.driver_info = RTL8821}, /* I-O DATA - Edimax */
|
||||
+ {USB_DEVICE(0x2001, 0x3318),.driver_info = RTL8821}, /* D-Link - Cameo */
|
||||
+ {USB_DEVICE(0x0E66, 0x0023),.driver_info = RTL8821}, /* HAWKING - Edimax */
|
||||
{USB_DEVICE(0x0411, 0x0242),.driver_info = RTL8821}, /* BUFFALO - Edimax */
|
||||
+ {USB_DEVICE(0x0411, 0x025D),.driver_info = RTL8821}, /* BUFFALO WI-U3-866D */
|
||||
{USB_DEVICE(0x2001, 0x3318),.driver_info = RTL8821}, /* D-Link DWA-172 */
|
||||
#endif
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# http://www.broadcom.com/support/802.11/linux_sta.php
|
||||
|
||||
PKG_NAME="bcm_sta"
|
||||
PKG_VERSION="6.30.223.248"
|
||||
PKG_VERSION="6.30.223.271"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="nonfree"
|
||||
@@ -36,11 +36,6 @@ PKG_LONGDESC="These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux
|
||||
PKG_IS_ADDON="no"
|
||||
PKG_AUTORECONF="no"
|
||||
|
||||
pre_make_target() {
|
||||
# rename binary to comply with upstream patches
|
||||
mv $ROOT/$PKG_BUILD/x86-64/lib/wlc_hybrid.o_shipped $ROOT/$PKG_BUILD/x86-64/lib/wlc_hybrid.o_shipped_x86_64
|
||||
}
|
||||
|
||||
make_target() {
|
||||
cd x86-64
|
||||
KBUILD_NOPEDANTIC=1 make V=1 CC=$CC -C $(kernel_path) M=`pwd` BINARCH=$TARGET_ARCH
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
From 2903f0610336ac96411206c9458bd2885d11ea2d Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Milone <alberto.milone@canonical.com>
|
||||
Date: Tue, 11 Dec 2012 15:51:26 +0100
|
||||
Subject: [PATCH 1/2] Make sure that the module licence is "MIXED/Proprietary"
|
||||
|
||||
---
|
||||
src/wl/sys/wl_linux.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/x86-64/src/wl/sys/wl_linux.c b/x86-64/src/wl/sys/wl_linux.c
|
||||
index f64496b..af3bea6 100644
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -159,6 +159,8 @@ static int wl_set_radio_block(void *data, bool blocked);
|
||||
static void wl_report_radio_state(wl_info_t *wl);
|
||||
#endif
|
||||
|
||||
+MODULE_LICENSE("MIXED/Proprietary");
|
||||
+
|
||||
static struct pci_device_id wl_id_table[] =
|
||||
{
|
||||
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
|
||||
--
|
||||
1.7.9.5
|
||||
@@ -1,37 +0,0 @@
|
||||
From 15bdf69c7c1fc0d674261b08a22c958e4826bc6b Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Milone <alberto.milone@canonical.com>
|
||||
Date: Tue, 11 Dec 2012 15:55:08 +0100
|
||||
Subject: [PATCH 2/2] Make sure to use the binary for the correct architecture
|
||||
|
||||
---
|
||||
Makefile | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index bf30b03..1f9b974 100644
|
||||
--- a/x86-64/Makefile
|
||||
+++ b/x86-64/Makefile
|
||||
@@ -113,6 +113,12 @@ ifeq ($(APIFINAL),WEXT)
|
||||
$(info Using Wireless Extension API)
|
||||
endif
|
||||
|
||||
+ifeq ($(shell dpkg --print-architecture),amd64)
|
||||
+BINARCH = x86_64
|
||||
+else
|
||||
+BINARCH = i386
|
||||
+endif
|
||||
+
|
||||
obj-m += wl.o
|
||||
|
||||
wl-objs :=
|
||||
@@ -125,7 +131,7 @@ EXTRA_CFLAGS += -I$(src)/src/include
|
||||
EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/clm/api -I$(src)/src/wl/phy
|
||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT
|
||||
|
||||
-EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
|
||||
+EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped_$(BINARCH)
|
||||
|
||||
KBASE ?= /lib/modules/`uname -r`
|
||||
KBUILD_DIR ?= $(KBASE)/build
|
||||
--
|
||||
1.7.9.5
|
||||
@@ -1,32 +0,0 @@
|
||||
From 9dab8884095e0710d62c41c45191a85d0dae59b3 Mon Sep 17 00:00:00 2001
|
||||
From: Henrik Rydberg <rydberg@euromail.se>
|
||||
Date: Sun, 9 Jan 2011 19:47:43 +0100
|
||||
Subject: [PATCH] Make up for the missing init_MUTEX
|
||||
|
||||
The init_MUTEX is a wrapper for sema_init(), and has been
|
||||
deprecated and removed in 2.6.37. In order for the dkms
|
||||
package to work also for earlier kernel versions, simply
|
||||
define the wrapper if it is missing.
|
||||
|
||||
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
||||
---
|
||||
src/src/wl/sys/wl_linux.c | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/x86-64/src/src/wl/sys/wl_linux.c b/x86-64/src/src/wl/sys/wl_linux.c
|
||||
index c11678f..6f4b7a6 100644
|
||||
--- a/x86-64/src.orig/wl/sys/wl_linux.c
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -99,6 +99,10 @@ static void wl_dpc_rxwork(struct wl_task *task);
|
||||
|
||||
#endif
|
||||
|
||||
+#ifndef init_MUTEX
|
||||
+#define init_MUTEX(sem) sema_init(sem, 1)
|
||||
+#endif
|
||||
+
|
||||
static int wl_linux_watchdog(void *ctx);
|
||||
static
|
||||
int wl_found = 0;
|
||||
--
|
||||
1.7.2.3
|
||||
@@ -1,30 +0,0 @@
|
||||
From 463082d4d3141d89f5d174d4a85800501f71d5db Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Milone <alberto.milone@canonical.com>
|
||||
Date: Fri, 22 Nov 2013 10:15:22 +0100
|
||||
Subject: [PATCH 1/1] Do not define __devinit as __init in linux >= 3.8 as
|
||||
__init was removed
|
||||
|
||||
Thanks to Krzysztof Kolasa for the patch.
|
||||
---
|
||||
src/include/linuxver.h | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/x86-64/src/include/linuxver.h b/x86-64/src/include/linuxver.h
|
||||
index 5548e71..5044739 100644
|
||||
--- a/x86-64/src/include/linuxver.h
|
||||
+++ b/x86-64/src/include/linuxver.h
|
||||
@@ -169,8 +169,12 @@ typedef irqreturn_t(*FN_ISR) (int irq, void *dev_id, struct pt_regs *ptregs);
|
||||
#define __devexit
|
||||
#endif
|
||||
#ifndef __devinit
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)
|
||||
+#define __devinit
|
||||
+#else
|
||||
#define __devinit __init
|
||||
#endif
|
||||
+#endif
|
||||
#ifndef __devinitdata
|
||||
#define __devinitdata
|
||||
#endif
|
||||
--
|
||||
1.7.9.5
|
||||
@@ -1,45 +0,0 @@
|
||||
From 05dd11abffe27c2fd8f618e79036be026f71b20c Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Milone <alberto.milone@canonical.com>
|
||||
Date: Mon, 12 May 2014 17:32:44 +0200
|
||||
Subject: [PATCH 1/1] Add support for Linux 3.15
|
||||
|
||||
Make sure to pass the channel to cfg80211_ibss_joined().
|
||||
|
||||
This should fix LP: #1307744
|
||||
---
|
||||
src/wl/sys/wl_cfg80211_hybrid.c | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index 3a5e46b..6384e58 100644
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -1841,7 +1841,26 @@ wl_notify_connect_status(struct wl_cfg80211_priv *wl, struct net_device *ndev,
|
||||
wl_get_assoc_ies(wl);
|
||||
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
|
||||
wl_update_bss_info(wl);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
|
||||
+ {
|
||||
+ struct wl_bss_info *bi;
|
||||
+ u16 bss_info_channel;
|
||||
+ struct ieee80211_channel *channel;
|
||||
+ u32 freq;
|
||||
+
|
||||
+ bi = (struct wl_bss_info *)(wl->extra_buf + 4);
|
||||
+ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec);
|
||||
+
|
||||
+ freq = ieee80211_channel_to_frequency(bss_info_channel,
|
||||
+ (bss_info_channel <= CH_MAX_2G_CHANNEL) ?
|
||||
+ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ);
|
||||
+
|
||||
+ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq);
|
||||
+ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL);
|
||||
+ }
|
||||
+#else
|
||||
cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
|
||||
+#endif
|
||||
set_bit(WL_STATUS_CONNECTED, &wl->status);
|
||||
wl->profile->active = true;
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/x86-64/Makefile 2014-06-26 10:42:08.000000000 +0000
|
||||
+++ b/x86-64/Makefile 2014-07-17 22:44:01.662297228 +0000
|
||||
@@ -132,6 +132,8 @@
|
||||
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
|
||||
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
|
||||
|
||||
+EXTRA_CFLAGS += -Wno-date-time
|
||||
+
|
||||
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped_$(BINARCH)
|
||||
|
||||
KBASE ?= /lib/modules/`uname -r`
|
||||
@@ -1,29 +0,0 @@
|
||||
From 05dd11abffe27c2fd8f618e79036be026f71b20c Mon Sep 17 00:00:00 2001
|
||||
From: Brian Norris <computersforpeace@gmail.com>
|
||||
Date: Tue, 26 Aug 2014 01:21:19 -0800
|
||||
|
||||
Subject: [PATCH] Add support for Linux 3.17
|
||||
|
||||
---
|
||||
src/wl/sys/wl_linux.c | 19 +++++++++++++++++++
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/x86-64/src/wl/sys/wl_linux.c b/x86-64/src/wl/sys/wl_linux.c
|
||||
index 3a5e46b..6384e58 100644
|
||||
--- a/x86-64/src/wl/sys/wl_linux.c
|
||||
+++ b/x86-64/src/wl/sys/wl_linux.c
|
||||
@@ -1351,7 +1351,12 @@
|
||||
dev->priv = priv_link;
|
||||
#else
|
||||
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
|
||||
dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
|
||||
+#else
|
||||
+ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN,
|
||||
+ ether_setup);
|
||||
+#endif
|
||||
if (!dev) {
|
||||
WL_ERROR(("wl%d: %s: alloc_netdev failed\n",
|
||||
(wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__));
|
||||
--
|
||||
1.9.1
|
||||
@@ -1,36 +0,0 @@
|
||||
From 8b6f3f87c81fa35eef24831e9a93eff1e6e1444f Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Milone <alberto.milone@canonical.com>
|
||||
Date: Mon, 10 Nov 2014 09:22:09 +0100
|
||||
Subject: [PATCH 1/1] Update cfg80211_inform_bss() to use
|
||||
CFG80211_BSS_FTYPE_UNKNOWN
|
||||
|
||||
This is only necessary with Linux >= 3.18.
|
||||
|
||||
Original author: Krzysztof Kolasa
|
||||
Source: https://raw.githubusercontent.com/kolasa/bcmwl-6.30.223.248/master/patches/0015-CFG80211_BSS_FTYPE_UNKNOWN-linux-3.18.0.patch
|
||||
---
|
||||
src/wl/sys/wl_cfg80211_hybrid.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index ea0726f..ee0d3a0 100644
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -2010,9 +2010,15 @@ static s32 wl_inform_single_bss(struct wl_cfg80211_priv *wl, struct wl_bss_info
|
||||
|
||||
notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
|
||||
notify_ielen = le32_to_cpu(bi->ie_length);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
|
||||
cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
|
||||
0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
|
||||
(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
|
||||
+#else
|
||||
+ cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),
|
||||
+ 0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
|
||||
+ (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
|
||||
+#endif
|
||||
|
||||
if (unlikely(!cbss))
|
||||
return -ENOMEM;
|
||||
--
|
||||
1.9.1
|
||||
@@ -1,56 +0,0 @@
|
||||
From 92fc12028553831a87cfa87ffa8d676ab0f60522 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Eisenmann <simon@longsleep.org>
|
||||
Date: Sat, 14 Mar 2015 15:02:08 +0100
|
||||
Subject: [PATCH] Repair make warnings
|
||||
|
||||
Orginal author: Krzysztof Kolasa
|
||||
Source: https://raw.githubusercontent.com/kolasa/bcmwl-6.30.223.248/9fafc1faa6dc410bf8aba340a7929f404c73d30e/patches/0016-repair-make-warnings.patch
|
||||
---
|
||||
src/wl/sys/wl_cfg80211_hybrid.c | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index ea0726f..b265e25 100644
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -63,8 +63,13 @@ static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
|
||||
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
|
||||
struct cfg80211_ibss_params *params);
|
||||
static s32 wl_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
|
||||
static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
|
||||
struct net_device *dev, u8 *mac, struct station_info *sinfo);
|
||||
+#else
|
||||
+static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
|
||||
+ struct net_device *dev, const u8 *mac, struct station_info *sinfo);
|
||||
+#endif
|
||||
static s32 wl_cfg80211_set_power_mgmt(struct wiphy *wiphy,
|
||||
struct net_device *dev, bool enabled, s32 timeout);
|
||||
static int wl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
|
||||
@@ -1387,7 +1392,7 @@ wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev,
|
||||
key_endian_to_host(&key);
|
||||
|
||||
params.key_len = (u8) min_t(u8, DOT11_MAX_KEY_SIZE, key.len);
|
||||
- memcpy(params.key, key.data, params.key_len);
|
||||
+ memcpy((char *)params.key, key.data, params.key_len);
|
||||
|
||||
if ((err = wl_dev_ioctl(dev, WLC_GET_WSEC, &wsec, sizeof(wsec)))) {
|
||||
return err;
|
||||
@@ -1421,9 +1426,15 @@ wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev,
|
||||
return err;
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
|
||||
static s32
|
||||
wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
|
||||
u8 *mac, struct station_info *sinfo)
|
||||
+#else
|
||||
+static s32
|
||||
+wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
|
||||
+ const u8 *mac, struct station_info *sinfo)
|
||||
+#endif
|
||||
{
|
||||
struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
|
||||
scb_val_t scb_val;
|
||||
--
|
||||
2.1.0
|
||||
@@ -1,39 +0,0 @@
|
||||
From a97b0a39f016589e38706d7d32f902847dcbbf27 Mon Sep 17 00:00:00 2001
|
||||
From: Simon Eisenmann <simon@longsleep.org>
|
||||
Date: Sat, 14 Mar 2015 15:10:48 +0100
|
||||
Subject: [PATCH] Add support for Linux 4.0
|
||||
|
||||
---
|
||||
src/wl/sys/wl_cfg80211_hybrid.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
index b265e25..425c7c5 100644
|
||||
--- a/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
+++ b/x86-64/src/wl/sys/wl_cfg80211_hybrid.c
|
||||
@@ -1452,7 +1452,11 @@ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
|
||||
WL_DBG(("Could not get rate (%d)\n", err));
|
||||
} else {
|
||||
rate = dtoh32(rate);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
|
||||
sinfo->filled |= STATION_INFO_TX_BITRATE;
|
||||
+#else
|
||||
+ sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
|
||||
+#endif
|
||||
sinfo->txrate.legacy = rate * 5;
|
||||
WL_DBG(("Rate %d Mbps\n", (rate / 2)));
|
||||
}
|
||||
@@ -1465,7 +1469,11 @@ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
|
||||
return err;
|
||||
}
|
||||
rssi = dtoh32(scb_val.val);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
|
||||
sinfo->filled |= STATION_INFO_SIGNAL;
|
||||
+#else
|
||||
+ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
|
||||
+#endif
|
||||
sinfo->signal = rssi;
|
||||
WL_DBG(("RSSI %d dBm\n", rssi));
|
||||
}
|
||||
--
|
||||
2.1.0
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user