Compare commits

...

227 Commits
7.0.1 ... 7.0.3

Author SHA1 Message Date
Christian Hewitt
9fd2df1fb2 Merge pull request #1095 from lrusak/docker-libreelec-7.0
backport of #1094  (docker: update to 1.12.5, let LibreELEC handle the systemd service)
2016-12-27 13:27:25 +04:00
Lukas Rusak
1d926643e0 docker: update to 1.12.5, let LibreELEC handle the systemd service 2016-12-25 23:08:52 -08:00
Christian Hewitt
82cc26e2f5 Merge pull request #1071 from lrusak/moonlight-libreelec-7.0
backport of #1070  (moonlight: bump depends and rebuild)
2016-12-19 20:34:11 +04:00
Lukas Rusak
d3da4b2b92 moonlight: bump PKG_REV 2016-12-17 13:36:40 -08:00
Lukas Rusak
03c35a33a4 moonlight-common-c: update to 1d058cb 2016-12-17 13:35:56 -08:00
Christian Hewitt
aaad92e0c2 Merge pull request #1048 from MilhouseVH/768_backport
bcm2835-driver: create symlinks for new firmware [backport]
2016-12-09 12:20:25 +04:00
MilhouseVH
b95ea98bfb bcm2835-driver: create symlinks for new firmware [backport] 2016-12-09 08:15:23 +00:00
Lukas Rusak
21ea273e2b Merge pull request #1047 from LibreELEC/revert-1042-version_devel
Revert "config: set version to devel"
2016-12-08 21:47:36 -08:00
Christian Hewitt
c809490a7f Revert "config: set version to devel" 2016-12-09 08:40:32 +04:00
Christian Hewitt
c35e6700a6 Merge pull request #1046 from MilhouseVH/703_fw
RBP: Update firmware d760a4f (LE7)
2016-12-09 08:38:25 +04:00
MilhouseVH
80bc687397 RBP: Update firmware d760a4f 2016-12-08 23:15:34 +00:00
Lukas Rusak
926d30c39f Merge pull request #1042 from chewitt/version_devel
config: set version to devel
2016-12-07 12:29:30 -08:00
chewitt
c70949e3ee config: set version to devel 2016-12-07 20:16:33 +00:00
Lukas Rusak
585e900469 Merge pull request #1040 from chewitt/settings_bump
settings: bump to 0.7.5
2016-12-07 12:08:45 -08:00
chewitt
576107b936 settings: bump to 0.7.5 2016-12-07 20:06:52 +00:00
MilhouseVH
5c59d1e91e Merge pull request #1003 from chewitt/version_703
config: set version to 7.0.3
2016-11-30 05:34:23 +00:00
chewitt
4232f42c40 config: set version to 7.0.3 2016-11-30 05:32:02 +00:00
MilhouseVH
2457e4084e Merge pull request #998 from chewitt/bump_settings_074
settings: bump to 0.7.4
2016-11-29 06:10:08 +00:00
chewitt
b4a7431eda settings: bump to 0.7.4 2016-11-29 06:06:03 +00:00
Christian Hewitt
85030b1831 Merge pull request #982 from lrusak/docker-libreelec-7.0
backport of #981 (docker: update to 1.12.3)
2016-11-26 07:40:33 +04:00
Lukas Rusak
a6fbd86000 docker: update to 1.12.3 2016-11-23 13:52:57 -08:00
Christian Hewitt
8d9eafe5f8 Merge pull request #965 from awiouy/inadyn7
Backport of #869
2016-11-23 09:10:53 +04:00
Christian Hewitt
e6c4aef562 Merge pull request #966 from awiouy/filmon
pvr.filmon: change user agent
2016-11-23 09:10:37 +04:00
awiouy
6964e824db pvr.filmon: change user agent 2016-11-21 18:22:02 +01:00
awiouy
6553e7316e inadyn: upgrade to 2.0 2016-11-21 12:37:03 +01:00
awiouy
c02cca98c8 libite: initial package 2016-11-21 12:28:19 +01:00
awiouy
40f1d41f73 libconfuse: initial package 2016-11-21 12:27:46 +01:00
Christian Hewitt
37b7f4da04 Merge pull request #872 from awiouy/wgp7
Backport ot #866
2016-10-23 17:04:26 +04:00
awiouy
6770e8c120 webgrabplus: add system.d timer 2016-10-23 14:41:33 +02:00
Christian Hewitt
88e4490573 Merge pull request #861 from lrusak/docker-libreelec-7.0
backport of #860 (docker: update to 1.12.2)
2016-10-23 08:41:52 +04:00
Lukas Rusak
44dd34ac49 docker: update to 1.12.2 2016-10-21 10:06:26 -07:00
Lukas Rusak
764c5bf4af runc: update to 02f8fa7 2016-10-21 10:05:09 -07:00
Lukas Rusak
d861dbb84e containerd: update to 0366d7e 2016-10-21 10:05:07 -07:00
Christian Hewitt
ca2d5949a7 Merge pull request #840 from awiouy/emby7
emby: update to 3.0.8100
2016-10-16 10:03:02 +04:00
awiouy
62ef48cde3 emby: update to 3.0.8100 2016-10-15 09:53:20 +02:00
Christian Hewitt
adbfbbf443 Merge pull request #834 from dead/moon_70
Backport of #832
2016-10-13 19:04:29 +04:00
Gustavo
b7d12e65f9 script.moonlight: update to 391de3f 2016-10-12 22:16:56 -03:00
Gustavo
e6418dd4e7 moonlight-common-c: update to 6455381 2016-10-12 22:16:25 -03:00
Gustavo
6399471598 moonlight-embedded: update to 2.2.2 2016-10-12 22:15:52 -03:00
Christian Hewitt
172979b343 Merge pull request #726 from CvH/moon_v7
Backport of #725
2016-09-14 21:12:24 +04:00
cvh
0b2b9cc0b3 moonlight: update addon 2016-09-12 14:17:19 +02:00
Christian Hewitt
4a6f01df12 Merge pull request #721 from HiassofT/le7-hifiberry
RPi/RPi2: add support for HiFiBerry Digi+ Pro
2016-09-11 23:45:55 +04:00
Matthias Reichl
2fede19e34 RPi/RPi2: add support for HiFiBerry Digi+ Pro
Signed-off-by: Matthias Reichl <hias@horus.com>
2016-09-11 12:12:44 +02:00
Christian Hewitt
2fb38bab6b Merge pull request #702 from awiouy/mc7
Backport of #700
2016-09-10 01:39:34 +04:00
awiouy
6160359076 system-tools: add inotify-tools, mc 2016-09-09 22:55:12 +02:00
awiouy
af79a9a922 inotify-tools: initial package 2016-09-09 22:55:12 +02:00
awiouy
e0730911b5 mc: initial package 2016-09-09 21:26:08 +02:00
Christian Hewitt
86c5f70f7d Merge pull request #715 from awiouy/scw-dev
Backport of #714
2016-09-09 11:11:43 +04:00
awiouy
686c55e47b spotify-connect-web: handle PCM specified as a:CARD=c,DEV=d 2016-09-08 21:24:50 +02:00
Christian Hewitt
f5cac9d7b9 Merge pull request #699 from lrusak/chromium-libreelec-7.0
backport of #678 (chromium: update to 53.0.2785.92)
2016-09-06 21:05:13 +04:00
Lukas Rusak
02526479e9 chromium: update to 53.0.2785.92 2016-09-05 23:25:05 -07:00
Christian Hewitt
9d3a64f285 Merge pull request #692 from lrusak/docker-libreelec-7.0
backport of #691 (docker: update to 1.12.1)
2016-09-04 21:33:57 +04:00
Lukas Rusak
1a47b4894e docker: update to 1.12.1 2016-09-04 10:23:22 -07:00
Christian Hewitt
b41ae1a68e Merge pull request #682 from awiouy/wgp_mdb7
webgrabplus: update mdb ini files
2016-08-31 06:44:49 +04:00
jc
d86dd19f6f webgrabplus: update mdb ini files 2016-08-31 01:09:00 +02:00
Christian Hewitt
75f74dedd1 Merge pull request #669 from awiouy/scw-avahi7
Backport of #660
2016-08-27 23:48:29 +04:00
Christian Hewitt
0901821711 Merge pull request #668 from awiouy/mono7
Backport of Mono, Emby and WebGrab+Plus
2016-08-27 23:48:21 +04:00
Christian Hewitt
56616cbf32 Merge pull request #659 from awiouy/cursed
alsautils: depend on ncurses
2016-08-27 08:48:06 +04:00
jc
6a0dd6d844 multimedia-tools: rebuild alsamixer with ncurses 2016-08-26 08:54:36 +02:00
jc
ea23754c06 Revert "netbsd-curses: backport package to support #640"
This reverts commit f221a22cb2.
2016-08-26 08:53:33 +02:00
jc
e4f3249975 spotify-connect-web: add avahi login 2016-08-26 02:04:23 +02:00
chewitt
5f22b159c3 imagemagick: udpate to 6.9.5-5 2016-08-25 21:44:58 +02:00
jc
0436b7f1eb emby: update to 3.0.6070 2016-08-25 21:44:45 +02:00
jc
d04830f956 webgrabplus: build for all architectures 2016-08-25 21:43:52 +02:00
jc
2a94a1eff8 mono: update to 4.2.1.102 2016-08-25 21:43:52 +02:00
jc
3e30fa98da alsautils: build alsamixer (depends on ncurses), do not install it 2016-08-25 20:42:36 +02:00
CvH
768582c2a0 Merge pull request #643 from chewitt/netbsd-curses
netbsd-curses: backport package to support #640
2016-08-22 07:58:48 +02:00
chewitt
f221a22cb2 netbsd-curses: backport package to support #640 2016-08-22 06:54:43 +01:00
Christian Hewitt
2efdea781e Merge pull request #642 from awiouy/st7
syncthing: update to 0.14.4
2016-08-22 08:10:37 +04:00
Christian Hewitt
51abf5d596 Merge pull request #640 from awiouy/mm7
backport of #495 and #620 (multimedia-tools)
2016-08-22 08:10:31 +04:00
jc
53af4c1779 syncthing: update to 0.14.3 2016-08-22 00:49:50 +02:00
jc
162bda0f92 multimedia-tools: add alsamixer, bump mpg123 and squeezelite 2016-08-21 23:35:34 +02:00
jc
426920ad55 mpg123: update to 1.23.6 2016-08-21 23:34:02 +02:00
jc
9d2a180818 squeezelite: update to 33cca7e 2016-08-21 23:33:33 +02:00
jc
3222665392 alsautils: build alsamixer, do not install it 2016-08-21 23:33:08 +02:00
jc
a706c7f3bc multimedia-tools: reflect change to squeezelite 2016-08-21 23:32:02 +02:00
jc
9630bd71ea squeezelite: remove ir 2016-08-21 23:30:03 +02:00
Christian Hewitt
a9dad8ad2f Merge pull request #634 from awiouy/bp597
backport of #597
2016-08-19 07:31:20 +04:00
jc
ddd4f65455 xdotool: initial package 2016-08-19 00:12:14 +02:00
jc
7450343bdb chromium: add xdotool 2016-08-19 00:11:34 +02:00
Christian Hewitt
bc3b8c9f11 Merge pull request #628 from awiouy/scw7
backport of #616
2016-08-17 14:40:36 +04:00
Christian Hewitt
e1d9e58905 Merge pull request #629 from awiouy/wgpp7
backport of #617
2016-08-17 02:37:45 +04:00
jc
499016c751 webgrabplus: update and add pre/post-processing 2016-08-17 00:17:54 +02:00
jc
820d5e30d9 spotify-connect-web: rework 2016-08-17 00:13:18 +02:00
Christian Hewitt
c3e33b2a45 Merge pull request #611 from awiouy/scw7
Backport of #580 and #604
2016-08-06 00:41:37 +04:00
jc
aac25ae253 spotify-connect-web: initial addon 2016-08-05 22:32:42 +02:00
Christian Hewitt
18b9bc2dc9 Merge pull request #590 from lrusak/docker-libreelec-7.0
backport of #589  docker: include docker-proxy
2016-07-31 22:34:55 +04:00
Lukas Rusak
a48505ab0c docker: include docker-proxy 2016-07-31 11:32:08 -07:00
Christian Hewitt
4888b1f10e Merge pull request #585 from awiouy/wgp7
backport of #584
2016-07-31 22:30:01 +04:00
Christian Hewitt
3e1d1f6f04 Merge pull request #588 from jernejsk/u-boot-fix-7.0
u-boot: Fix update.sh script for imx6 (backport of #586)
2016-07-31 22:28:02 +04:00
Jernej Skrabec
5052b85fd8 u-boot: Fix update.sh script for imx6 (backport of #586)
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
2016-07-31 20:02:41 +02:00
jc
2f6b4399d7 backport of #584 2016-07-31 12:16:58 +02:00
Christian Hewitt
72735c2e3c Merge pull request #579 from lrusak/docker-libreelec-7.0
backport of #557 (docker: update to 1.12.0)
2016-07-29 22:57:36 +04:00
Lukas Rusak
aeb73199aa docker: update to 1.12.0 2016-07-29 10:08:51 -07:00
Lukas Rusak
fa60318337 go: update to 1.6.3 2016-07-29 10:07:25 -07:00
Lukas Rusak
deca9cec3f runc: update to cc29e3d 2016-07-29 10:07:23 -07:00
Lukas Rusak
1e27005f56 containerd: update to 0ac3cd1 2016-07-29 10:07:21 -07:00
Christian Hewitt
437e9928b7 Merge pull request #574 from drieschel/factory_update_params
Parameters removed, which are responsible for a factory reset/wiping …
2016-07-28 11:07:37 +04:00
Immanuel Klinkenberg
3509c72747 Fix NAND auto installs on WeTek devices 2016-07-28 00:21:50 +02:00
CvH
a5810eac91 Merge pull request #571 from awiouy/mono_no_arm64_le7
Backport of #570
2016-07-27 07:56:09 +02:00
jc
657d5081b4 webgrabplus: remove arm64 architecture 2016-07-27 06:58:49 +02:00
jc
dba8c5d514 emby: remove arm64 architecture 2016-07-27 06:58:21 +02:00
jc
6c4e1ea6ed mono: remove arm64 architecture 2016-07-27 06:58:13 +02:00
Christian Hewitt
5bc64330e6 Merge pull request #562 from awiouy/backport_emby
Backport emby
2016-07-26 13:38:19 +04:00
Christian Hewitt
5baaa44621 Merge pull request #566 from lrusak/sapphire-libreelec-7.0
backport of #561 Sapphire remote driver add-on
2016-07-26 13:37:28 +04:00
Christian Hewitt
a70bf305ef Merge pull request #567 from awiouy/wg7
Backport of  #545
2016-07-26 13:37:19 +04:00
Christian Hewitt
e5eb4f4e82 Merge pull request #568 from CvH/tvh-7-fix
tvheadend42: fix x264 url
2016-07-26 01:34:06 +04:00
cvh
ba7b643c07 tvheadend42: fix x264 url 2016-07-25 22:03:54 +02:00
jc
e06d8574f9 webgrabplus: initial addon 2016-07-25 21:39:44 +02:00
Lukas Rusak
aab677c0f6 sapphire: initial add-on 2016-07-25 10:02:19 -07:00
Lukas Rusak
e0e69ca4ee bash: add package 2016-07-25 10:02:19 -07:00
jc
387ce03e2a imagemagick: initial package 2016-07-22 12:57:16 +02:00
jc
c9d41f94f1 emby: initial addon 2016-07-22 12:52:57 +02:00
CvH
8c7fc73ade Merge pull request #560 from vpeter4/sundtek-7
backport of #559 sundtek-mediatv: update driver to latest version on first install
2016-07-21 18:20:37 +02:00
Peter Vicman
f70d0eb59c sundtek-mediatv: update driver to latest version on first install
show driver version in addon settings
german translation
2016-07-21 18:13:29 +02:00
Christian Hewitt
51e2919e37 Merge pull request #554 from lrusak/hyperion-libreelec-7.0
backport of #553 hyperion: update to 85fcec3
2016-07-20 22:23:52 +04:00
Christian Hewitt
3f2afd2f82 Merge pull request #552 from CvH/remote_7
Backport of #550
2016-07-20 21:37:39 +04:00
Lukas Rusak
82dae5275b hyperion: update to 85fcec3 2016-07-20 10:36:23 -07:00
Lukas Rusak
9000f6673e rpi_ws281x: update to 3e6ea50 2016-07-20 10:30:18 -07:00
Eldin
812aba3bd1 Update remote-config
Update remote-config to first check in user defined remote.conf
2016-07-20 13:56:58 +02:00
Christian Hewitt
8ff32706b9 Merge pull request #534 from CvH/mono_7
mono: create addon (backport from master)
2016-07-13 00:26:09 +04:00
awiouy@gmail.com
ffed1fc27a libgdiplus: create package 2016-07-12 21:08:25 +02:00
awiouy@gmail.com
42b95f6708 mono: create addon 2016-07-12 21:08:25 +02:00
awiouy@gmail.com
f0db46a8d7 mono_sqlite: create package 2016-07-10 20:09:05 +02:00
Lukas Rusak
94cb7aa852 Merge pull request #521 from stefansaraev/70-skinfix
kodi: fix for saving sking settings on shutdown
2016-07-09 10:40:53 -07:00
Stefan Saraev
0cf94edfe3 kodi: fix for saving sking settings on shutdown 2016-07-07 19:24:38 +03:00
Lukas Rusak
f37187d31b Merge pull request #516 from kszaq/amlogic-nand-imggz-7.0
init: Fix updating from img.gz when kernel resides on block device
2016-07-05 10:36:31 -07:00
kszaq
4823c1bc5c init: Fix updating from img.gz when kernel resides on block device
This fixes updating LE from img.gz when installed on WeTek internal memory.
2016-07-04 20:56:59 +02:00
MilhouseVH
c3c336c315 Merge pull request #493 from CvH/gitignore
libreelec: add ccache to gitignore
2016-06-27 10:09:24 +01:00
CvH
7c5cd4bde9 libreelec: add ccache to gitignore 2016-06-27 11:07:51 +02:00
Christian Hewitt
0bb8da7305 Merge pull request #476 from CvH/vdr7
vdr-addon: update satip and vdr.script
2016-06-27 07:04:22 +04:00
Christian Hewitt
6c2d00da81 Merge pull request #487 from lrusak/image-libreelec-7.0
make the images as well when running make noobs
2016-06-25 09:22:16 +04:00
Lukas Rusak
5171e1cacf scripts/image: cleanup leftover directories 2016-06-24 11:11:01 -07:00
Lukas Rusak
04620a8f2b scripts/image: make the images as well when running make noobs 2016-06-24 11:10:56 -07:00
cvh
7414c6f5c5 vdr-addon: update satip and vdr.script 2016-06-24 09:25:23 +02:00
Christian Hewitt
47887b1036 Merge pull request #480 from MilhouseVH/rbp_update
RBP: Additional kernel patch
2016-06-23 20:47:09 +04:00
MilhouseVH
aef20f07d4 RBP: Additional kernel patch 2016-06-23 17:31:52 +01:00
Christian Hewitt
789ebf00cf Merge pull request #478 from MilhouseVH/wlan-firmware-bump-le7
wlan-firmware: update to wlan-firmware-0.0.32
2016-06-23 11:03:01 +04:00
MilhouseVH
980d270049 wlan-firmware: update to wlan-firmware-0.0.32 2016-06-23 07:52:36 +01:00
Christian Hewitt
2028ae585e Merge pull request #471 from HiassofT/journald-fix-7.0
Backport of #470
2016-06-22 17:39:53 +04:00
Christian Hewitt
56117849c7 Merge pull request #473 from MilhouseVH/rbpbump_le7
RBP/Generic: Update with latest firmware and kernel patches (390f53e, 4.4.13) [Backport]
2016-06-22 17:39:26 +04:00
MilhouseVH
06be6bfd6a RPi/RPi2: Add new config options for i2s soundcards 2016-06-21 21:20:49 +01:00
MilhouseVH
c4aab2e884 RPi/RPi2: update linux support patches for linux 4.4.13 2016-06-21 21:16:34 +01:00
MilhouseVH
a47773db2a linux: update to linux-4.4.13 2016-06-21 20:06:13 +01:00
MilhouseVH
f69190f16c RPi/RPi2: Update kodi support patches 2016-06-21 19:53:27 +01:00
MilhouseVH
660fc73db2 RPi/RPi2: Update kodi-theme-* support patches 2016-06-21 19:53:09 +01:00
MilhouseVH
732b80f246 RBP: Update to firmware 390f53e 2016-06-21 19:49:46 +01:00
Matthias Reichl
04b46f85d8 systemd/journald: remove MaxRetentionSec setting
This fixes journal truncation on time jumps (eg when ntp
set the correct date on systems without an RTC).

Signed-off-by: Matthias Reichl <hias@horus.com>
2016-06-21 15:59:24 +02:00
Christian Hewitt
c50d1de239 Merge pull request #469 from awiouy/libreelec-7.0
Backport of #466
2016-06-21 16:27:20 +04:00
Christian Hewitt
f60178dd33 Merge pull request #466 from awiouy/unclutter
unclutter: initial package
2016-06-21 06:36:46 +02:00
Christian Hewitt
92789cf463 Merge pull request #462 from islipfd19/patch-6
mpd: enable build from clean (backport)
2016-06-18 06:35:13 +04:00
Christian Hewitt
56f4dee6a7 Merge pull request #461 from islipfd19/patch-5
chromium: enable build from clean (backport)
2016-06-18 06:34:45 +04:00
islipfd19
45297f3d6f mpd: enable build from clean (backport) 2016-06-17 22:01:43 -04:00
islipfd19
c8b593f3e7 chromium: enable build from clean (backport) 2016-06-17 22:00:10 -04:00
Christian Hewitt
5eac99532e Merge pull request #456 from lrusak/hyperion-libreelec-7.0
hyperion: use new example file
2016-06-17 12:36:42 +04:00
Lukas Rusak
af389eb7c3 hyperion: use new example file 2016-06-17 00:56:50 -07:00
Christian Hewitt
05800eba76 Merge pull request #447 from lrusak/hyperion-libreelec-7.0
backport of #446 (hyperion: update to d2f4725)
2016-06-17 10:06:40 +04:00
Peter V
bf84fdcb6d Merge pull request #453 from CvH/dispmanx_7
backport of #445
2016-06-15 13:58:18 +02:00
Peter V
5b6d7737d9 Merge pull request #452 from CvH/tinc_7
backport of #444
2016-06-15 13:58:11 +02:00
awiouy@gmail.com
0cd3f16941 dispmanx_vnc: enable build from clean 2016-06-15 13:53:22 +02:00
awiouy@gmail.com
1ffa439e9e tinc: enable build from clean 2016-06-15 13:52:29 +02:00
Christian Hewitt
4b73be378e Merge pull request #451 from MilhouseVH/osmc_remote_le7
osmc_rf: fix context menu button (backport)
2016-06-15 07:46:38 +04:00
MilhouseVH
e332a9126d osmc_rf: fix context menu button (backport) 2016-06-15 04:37:29 +01:00
Lukas Rusak
8829d4dbb0 hyperion: update to d2f4725 2016-06-13 12:05:43 -07:00
Lukas Rusak
fd098f2ce5 rpi_ws281x: add package 2016-06-13 12:01:14 -07:00
Christian Hewitt
0d36cf1198 Merge pull request #438 from MilhouseVH/updatecleanup7
RPi: Add a cleanup step (backport)
2016-06-09 22:19:47 +04:00
MilhouseVH
45255d08ab RPi: Add a cleanup step (backport) 2016-06-09 19:15:54 +01:00
Christian Hewitt
d63add9d5d Merge pull request #436 from MilhouseVH/mtools_le7
mtools: Fix creation of dot directories (. and ..) [backport]
2016-06-09 15:21:06 +04:00
MilhouseVH
5857829aa5 mtools: Fix creation of dot directories (. and ..) [backport] 2016-06-09 12:10:54 +01:00
Christian Hewitt
d894106fa0 Merge pull request #383 from CvH/eventlircd_up7
backport of #374
2016-06-09 14:42:11 +04:00
Christian Hewitt
dad8ffe5dd Merge pull request #430 from lrusak/docker-libreelec-7.0
backport of #429 (docker: update to 1.11.2)
2016-06-08 14:26:25 +04:00
Lukas Rusak
716f7810b4 docker: update to 1.11.2 2016-06-08 00:23:12 -07:00
CvH
1190302bb2 Merge pull request #426 from chewitt/machineid_dir_70
systemd: ensure /storage/.cache exists before writing machine-id (backport of #425)
2016-06-06 10:40:56 +02:00
chewitt
a08fd943ba systemd: ensure /storage/.cache exists before writing machine-id 2016-06-06 12:34:55 +04:00
CvH
fbb25f46f9 Merge pull request #423 from chewitt/mpd_libid3tag
mpd: add libid3tag package to addon-depends
2016-06-05 21:25:19 +02:00
chewitt
c87e2c75b2 mpd: add libid3tag package to addon-depends 2016-06-05 20:09:26 +01:00
CvH
4278770a23 Merge pull request #420 from chewitt/syncthing_updates
Syncthing: enable automatic upgrades (backport of #418)
2016-06-05 10:58:30 +02:00
chewitt
7c9e35396f Syncthing: enable automatic upgrades 2016-06-05 10:33:32 +04:00
Christian Hewitt
780b485c46 Merge pull request #416 from CvH/mpd_7_cp
backport of #415
2016-06-04 12:53:36 +04:00
cvh
65ef7856b7 mpd: fix description 2016-06-04 10:50:16 +02:00
Christian Hewitt
d97b981e33 Merge pull request #407 from CvH/mdp_7
backport of #406
2016-06-04 08:01:55 +04:00
MilhouseVH
5bd5616ca0 addons: mpd - initial package 2016-06-02 08:52:06 +02:00
Lukas Rusak
98f1ca693b Merge pull request #398 from chewitt/noobs_cosmetics
cosmetic changes for noobs
2016-05-31 23:11:28 -07:00
Christian Hewitt
d179fb6e4c Merge pull request #403 from CvH/cinergy_7
backport of #402
2016-05-30 06:22:20 +04:00
cvh
1d5cc264e0 linux: add support for Terratec Cinergy S2 Rev.3 2016-05-29 23:16:25 +02:00
Christian Hewitt
88daca031a Merge pull request #400 from CvH/oscam_7
backport of #399
2016-05-29 21:07:11 +04:00
cvh
ff0ac36bf0 oscam: update to 11233 2016-05-28 15:19:30 +02:00
CvH
f7e6ff4fbf Merge pull request #396 from chewitt/kernel_rtc
linux: add RTC_DRV_DS3232 to RPi/RPi2
2016-05-28 14:41:05 +02:00
chewitt
cb4fa2166e noobs: rebrand config.txt to avoid confusion 2016-05-27 14:32:20 +01:00
chewitt
e6b8098b67 noobs: update distro description 2016-05-27 13:49:21 +01:00
chewitt
775963a3ef noobs: rebrand script to LE 2016-05-27 13:48:35 +01:00
chewitt
eabe2263fe linux: add RTC_DRV_DS3232 to RPi/RPi2 2016-05-27 05:34:06 +01:00
MilhouseVH
48ffc8bf83 Merge pull request #387 from chewitt/udevil_noobs_bp
[backport] udevil: prevent noobs partitions from auto-mounting
2016-05-23 21:16:31 +01:00
chewitt
347e237a44 udevil: prevent noobs partitions from auto-mounting 2016-05-23 20:58:31 +01:00
cvh
ac863973c4 eventlircd: update to eventlircd fork - the OE fork of eventlircd seems to be the upstream project 2016-05-22 21:24:11 +02:00
Christian Hewitt
1d50c13bbe Merge pull request #378 from MilhouseVH/dtc-7.0.2
dtc: add package (backport)
2016-05-22 07:09:05 +04:00
Christian Hewitt
6cbd33fcf3 Merge pull request #379 from lrusak/moonlight-libreelec-7.0
backport of #368 (allow building for generic and use neon optimizations in opus)
2016-05-22 07:08:39 +04:00
Lukas Rusak
5a06e47061 moonlight: bump PKG_REV 2016-05-21 11:07:14 -07:00
Lukas Rusak
8c31e470b7 opus: allow using neon optimizations 2016-05-21 10:36:49 -07:00
Lukas Rusak
2ad45e2c1e moonlight: allow building for Generic 2016-05-21 10:36:49 -07:00
Lukas Rusak
d129bfa9c5 SDL2: update to 2.0.4 2016-05-21 10:36:49 -07:00
MilhouseVH
cc71f29d29 Merge pull request #377 from chewitt/missing_packages
addons: add libmad and faad2 to addon-depends
2016-05-21 17:18:44 +01:00
MilhouseVH
8823bdaab7 bcm2835-driver: add dtc and dtparam 2016-05-21 04:27:16 +01:00
MilhouseVH
059c90720d dtc: add package 2016-05-21 04:26:26 +01:00
chewitt
3bffe22ee0 addons: add libmad and faad2 to addon-depends 2016-05-21 04:23:58 +01:00
Christian Hewitt
62b5a4c985 Merge pull request #373 from lrusak/squeezelite-libreelec-7.0
backport of #345 and #372 (multimedia-tools: add mpg123 and squeezelite)
2016-05-21 06:46:58 +04:00
Lukas Rusak
d18ccf60fe Merge pull request #376 from CvH/unofficial_remove7
backport of #375
2016-05-20 14:05:05 -07:00
cvh
200fba4f05 packages/unofficial: remove git submodule 2016-05-20 22:48:13 +02:00
Lukas Rusak
4fd9e28217 Merge pull request #370 from MilhouseVH/noobs_quotes_7
noobs: single quotes break json (backport)
2016-05-20 13:13:38 -07:00
jc
1b406f7b7c libmediainfo: depends on zlib 2016-05-20 11:39:12 -07:00
Lukas Rusak
2745b4f2cf squeezelite: cleanup package 2016-05-20 11:35:34 -07:00
Anton Voyl
b26a9bfa0b multimedia-tools: add mpg123 and squeezelite 2016-05-20 11:35:22 -07:00
Anton Voyl
abe7582545 squeezelite: create addon 2016-05-20 11:34:23 -07:00
Anton Voyl
5317164aba mpg123: create addon 2016-05-20 11:34:05 -07:00
MilhouseVH
062f72ee73 noobs: Use 40x40 icon, when available 2016-05-20 18:34:39 +01:00
MilhouseVH
f266c91e79 noobs: single quotes break json (backport) 2016-05-20 10:11:41 +01:00
Christian Hewitt
a83c01f79d Merge pull request #364 from lrusak/docker-libreelec-7.0
backport of #356  (docker: add kodi notifications)
2016-05-19 10:42:42 +04:00
Christian Hewitt
d1327f6830 Merge pull request #362 from lrusak/moonlight-libreelec-7.0
backport of #299 (script.moonlight: initial add-on)
2016-05-19 10:34:57 +04:00
Lukas Rusak
23751734e5 docker: add kodi notifications 2016-05-18 23:34:19 -07:00
Lukas Rusak
49340de1dd script.moonlight: initial add-on 2016-05-18 23:24:57 -07:00
Lukas Rusak
1d92e9fe7f moonlight-embedded: add package 2016-05-18 23:19:27 -07:00
Lukas Rusak
0041d768d3 moonlight-common-c: add package 2016-05-18 23:19:27 -07:00
Lukas Rusak
e2d4723a0f enet: add package 2016-05-18 23:19:27 -07:00
Lukas Rusak
924a0a983b opus: add package 2016-05-18 23:19:27 -07:00
Lukas Rusak
eb11f60f53 config/addon: add xbmc.service.pluginsource.xml 2016-05-18 23:19:26 -07:00
Christian Hewitt
209b7fc289 Merge pull request #359 from chewitt/version
set version to devel
2016-05-18 08:13:26 +04:00
chewitt
2ef4e274a5 set version to devel 2016-05-18 05:12:38 +01:00
212 changed files with 56401 additions and 6067 deletions

3
.gitignore vendored
View File

@@ -23,6 +23,9 @@ mkpkg-temp
/sources
/.work
# ccache
/.ccache/
# backup files
*.orig

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "packages/unofficial"]
path = packages/unofficial
url = https://github.com/OpenELEC/unofficial-addons.git

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="@PKG_ADDON_ID@"
name="@ADDON_NAME@"
version="@ADDON_VERSION@"
provider-name="@PROVIDER_NAME@">
<requires>
<import addon="os.libreelec.tv" version="@OS_VERSION@"/>
<import addon="xbmc.python" version="2.1.0"/>
@REQUIRES@
</requires>
<extension point="xbmc.python.pluginsource" library="addon.py">
<provides>@PKG_ADDON_PROVIDES@</provides>
</extension>
<extension point="xbmc.service">
</extension>
<extension point="xbmc.addon.metadata">
<summary>@PKG_SHORTDESC@</summary>
<description>
@PKG_LONGDESC@
</description>
<disclaimer>
@PKG_DISCLAIMER@
</disclaimer>
<platform>all</platform>
</extension>
</addon>

View File

@@ -1,20 +1,20 @@
#!/bin/sh -x
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 LibreELEC Team
#
# OpenELEC is free software: you can redistribute it and/or modify
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
MOUNTPOINT="/tmp/LibreELEC-System"
@@ -26,10 +26,10 @@ md5sumCheck() {
if [ "$?" = "1" ]; then
echo "#######################################################"
echo "# #"
echo "# LibreELEC failed md5 check - Installation will quit #"
echo "# Invalid MD5 checksum - Installation stopped #"
echo "# #"
echo "# Your original download was probably corrupt. #"
echo "# Please visit www.libreelec.tv and get another copy #"
echo "# Your download was probably corrupt. #"
echo "# Visit https://libreelec.tv to download again #"
echo "# #"
echo "#######################################################"
exit 1

View File

@@ -1,5 +1,5 @@
# VERSION: set full version, use "devel" for development version
LIBREELEC_VERSION="7.0.1"
LIBREELEC_VERSION="7.0.3"
# OS_VERSION: OS Version
OS_VERSION="7.0"

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 B

View File

@@ -2,7 +2,7 @@
DISTRONAME="LibreELEC"
# short project description
DESCRIPTION="LibreELEC is a fast and user-friendly Kodi Entertainment Center distribution."
DESCRIPTION="LibreELEC is a fast and user-friendly Kodi media centre distribution."
# Welcome Message for e.g. SSH Server (up to 5 Lines)
GREETING0="##############################################"

View File

@@ -0,0 +1,43 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="bash"
PKG_VERSION="4.3.46"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.gnu.org/software/bash/bash.html"
PKG_URL="ftp://ftp.cwru.edu/pub/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_PRIORITY="optional"
PKG_SECTION="devel"
PKG_SHORTDESC="The GNU Bourne Again shell"
PKG_LONGDESC="The GNU Bourne Again shell"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
--disable-shared \
--with-curses \
--enable-readline \
--without-bash-malloc \
--with-installed-readline"
pre_configure_target() {
export LIBS="-lterminfo"
}

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="containerd"
PKG_VERSION="d2f0386"
PKG_VERSION="0366d7e"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="APL"
@@ -66,7 +66,6 @@ pre_make_target() {
make_target() {
mkdir -p bin
$GOLANG build -v -o bin/ctr -a -tags "static_build" -ldflags "$LDFLAGS" ./ctr
$GOLANG build -v -o bin/containerd -a -tags "static_build" -ldflags "$LDFLAGS" ./containerd
$GOLANG build -v -o bin/containerd-shim -a -tags "static_build" -ldflags "$LDFLAGS" ./containerd-shim
}

View File

@@ -0,0 +1,40 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="imagemagick"
PKG_VERSION="6.9.5-5"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="http://www.imagemagick.org/script/license.php"
PKG_SITE="http://www.imagemagick.org/"
PKG_URL="http://www.imagemagick.org/download/releases/ImageMagick-$PKG_VERSION.tar.xz"
PKG_SOURCE_DIR="ImageMagick-$PKG_VERSION"
PKG_DEPENDS_TARGET="toolchain libX11"
PKG_PRIORITY="optional"
PKG_SECTION="graphics"
PKG_SHORTDESC="ImageMagick"
PKG_LONGDESC="Software suite to create, edit, compose, or convert bitmap images"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
--enable-shared \
--with-quantum-depth=8 \
--enable-hdri=no \
--disable-openmp"

View File

@@ -0,0 +1,39 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="enet"
PKG_VERSION="1.3.13"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE=""
PKG_SITE=""
PKG_URL="http://enet.bespin.org/download/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="network"
PKG_SHORTDESC="ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol)"
PKG_LONGDESC="ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol)"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
post_makeinstall_target() {
rm -r $INSTALL
}

View File

@@ -0,0 +1,47 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="faad2"
PKG_VERSION="2.7"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.audiocoding.com/"
PKG_URL="$SOURCEFORGE_SRC/faac/faad2-src/$PKG_NAME-$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="audio"
PKG_SHORTDESC="faad: An MPEG-4 AAC decoder"
PKG_LONGDESC="The FAAD project includes the AAC decoder FAAD2. It supports several MPEG-4 object types (LC, Main, LTP, HE AAC, PS) and file formats (ADTS AAC, raw AAC, MP4), multichannel and gapless decoding as well as MP4 metadata tags. The codecs are compatible with standard-compliant audio applications using one or more of these profiles."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_MAINTAINER="Team LibreELEC (addons@libreelec.tv)"
# package specific configure options
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
--disable-shared \
--without-xmms \
--without-drm \
--without-mpeg4ip \
--with-gnu-ld"
post_makeinstall_target() {
rm -rf $INSTALL/usr/bin
}

View File

@@ -0,0 +1,12 @@
diff -Naur faad2-2.7-old/configure.in faad2-2.7-new/configure.in
--- faad2-2.7-old/configure.in 2009-02-04 16:51:03.000000000 -0800
+++ faad2-2.7-new/configure.in 2012-12-30 14:58:33.000000000 -0800
@@ -25,7 +25,7 @@
AC_PROG_MAKE_SET
AC_CHECK_PROGS(RPMBUILD, rpmbuild, rpm)
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS(config.h)
AC_ARG_WITH(xmms,[ --with-xmms compile XMMS-1 plugin],
WITHXMMS=$withval, WITHXMMS=no)

View File

@@ -0,0 +1,28 @@
diff -Naur faad2-2.7-old/common/mp4ff/Makefile.am faad2-2.7-new/common/mp4ff/Makefile.am
--- faad2-2.7-old/common/mp4ff/Makefile.am 2009-02-06 06:24:21.000000000 -0800
+++ faad2-2.7-new/common/mp4ff/Makefile.am 2009-02-11 05:36:14.000000000 -0800
@@ -1,7 +1,7 @@
-lib_LIBRARIES = libmp4ff.a
-include_HEADERS = mp4ff.h mp4ffint.h
+lib_LTLIBRARIES = libmp4ff.la
+include_HEADERS = mp4ff.h mp4ffint.h mp4ff_int_types.h
-libmp4ff_a_CFLAGS = -DUSE_TAGGING=1
+libmp4ff_la_CFLAGS = -DUSE_TAGGING=1
-libmp4ff_a_SOURCES = mp4ff.c mp4atom.c mp4meta.c mp4sample.c mp4util.c \
- mp4tagupdate.c mp4ff.h mp4ffint.h mp4ff_int_types.h
+libmp4ff_la_SOURCES = mp4ff.c mp4atom.c mp4meta.c mp4sample.c mp4util.c \
+ mp4tagupdate.c mp4ff.h mp4ffint.h mp4ff_int_types.h
diff -Naur faad2-2.7-old/frontend/Makefile.am faad2-2.7-new/frontend/Makefile.am
--- faad2-2.7-old/frontend/Makefile.am 2009-02-06 08:03:37.000000000 -0800
+++ faad2-2.7-new/frontend/Makefile.am 2009-02-11 05:35:52.000000000 -0800
@@ -5,7 +5,7 @@
-I$(top_srcdir)/common/mp4ff
faad_LDADD = $(top_builddir)/libfaad/libfaad.la \
- $(top_builddir)/common/mp4ff/libmp4ff.a
+ $(top_builddir)/common/mp4ff/libmp4ff.la
faad_SOURCES = main.c \
audio.c audio.h \

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="go"
PKG_VERSION="1.6.2"
PKG_VERSION="1.6.3"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="BSD"

View File

@@ -0,0 +1,28 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="libconfuse"
PKG_VERSION="3.0"
PKG_LICENSE="https://github.com/martinh/libconfuse/blob/master/LICENSE"
PKG_SITE="https://github.com/martinh/libconfuse"
PKG_URL="https://github.com/martinh/libconfuse/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Small configuration file parser library for C"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"

View File

@@ -0,0 +1,28 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="libite"
PKG_VERSION="1.8.2"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/troglobit/libite"
PKG_URL="https://github.com/troglobit/libite/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="That missing frog DNA you've been looking for"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"

View File

@@ -0,0 +1,39 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="libid3tag"
PKG_VERSION="0.15.1b"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.mars.org/home/rob/proj/mpeg/"
PKG_URL="$SOURCEFORGE_SRC/mad/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain zlib"
PKG_PRIORITY="optional"
PKG_SECTION="audio"
PKG_SHORTDESC="library for id3 tagging"
PKG_LONGDESC="library for id3 tagging"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_MAINTAINER="Lukas Sabota (LTsmooth42@gmail.com)"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"

View File

@@ -0,0 +1,56 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
#
# OpenELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# OpenELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="libmad"
PKG_VERSION="0.15.1b"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.mars.org/home/rob/proj/mpeg/"
PKG_URL="$SOURCEFORGE_SRC/mad/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="audio"
PKG_SHORTDESC="libmad: MPEG Audio Decoder"
PKG_LONGDESC="MAD is a high-quality MPEG audio decoder. It currently supports MPEG-1 and the MPEG-2 extension to Lower Sampling Frequencies, as well as the so-called MPEG 2.5 format. All three audio layers (Layer I, Layer II, and Layer III a.k.a. MP3) are fully implemented."
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
# package specific configure options
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
if [ "$TARGET_ARCH" = "x86_64" ] ; then
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-accuracy --enable-fpm=64bit"
fi
post_makeinstall_target() {
mkdir -p $SYSROOT_PREFIX/usr/lib/pkgconfig
cat > $SYSROOT_PREFIX/usr/lib/pkgconfig/mad.pc << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: mad
Description: MPEG audio decoder
Requires:
Version: 0.15.1b
Libs: -L${libdir} -lmad
Cflags: -I${includedir}
EOF
}

View File

@@ -0,0 +1,12 @@
diff -Naur libmad-0.15.1b-old/configure.ac libmad-0.15.1b-new/configure.ac
--- libmad-0.15.1b-old/configure.ac 2004-01-23 01:41:32.000000000 -0800
+++ libmad-0.15.1b-new/configure.ac 2012-12-30 15:14:37.000000000 -0800
@@ -28,7 +28,7 @@
AM_INIT_AUTOMAKE
-AM_CONFIG_HEADER([config.h])
+AC_CONFIG_HEADERS([config.h])
dnl System type.

View File

@@ -0,0 +1,12 @@
diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
--- libmad-0.15.1b-orig/configure.ac 2007-07-01 12:58:13.000000000 -0600
+++ libmad-0.15.1b/configure.ac 2007-07-01 12:59:13.000000000 -0600
@@ -105,7 +105,7 @@
shift
;;
-O2)
- optimize="-O"
+ optimize="-O2"
shift
;;
-fomit-frame-pointer)

View File

@@ -0,0 +1,146 @@
diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
--- libmad-0.15.1b-orig/configure.ac 2007-06-30 20:22:31.000000000 -0600
+++ libmad-0.15.1b/configure.ac 2007-06-30 20:25:31.000000000 -0600
@@ -122,74 +122,74 @@
esac
done
-if test "$GCC" = yes
-then
- if test -z "$arch"
- then
- case "$host" in
- i386-*) ;;
- i?86-*) arch="-march=i486" ;;
- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
- powerpc-*) ;;
- mips*-agenda-*) arch="-mcpu=vr4100" ;;
- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
- esac
- fi
-
- case "$optimize" in
- -O|"-O "*)
- optimize="-O"
- optimize="$optimize -fforce-mem"
- optimize="$optimize -fforce-addr"
- : #x optimize="$optimize -finline-functions"
- : #- optimize="$optimize -fstrength-reduce"
- optimize="$optimize -fthread-jumps"
- optimize="$optimize -fcse-follow-jumps"
- optimize="$optimize -fcse-skip-blocks"
- : #x optimize="$optimize -frerun-cse-after-loop"
- : #x optimize="$optimize -frerun-loop-opt"
- : #x optimize="$optimize -fgcse"
- optimize="$optimize -fexpensive-optimizations"
- optimize="$optimize -fregmove"
- : #* optimize="$optimize -fdelayed-branch"
- : #x optimize="$optimize -fschedule-insns"
- optimize="$optimize -fschedule-insns2"
- : #? optimize="$optimize -ffunction-sections"
- : #? optimize="$optimize -fcaller-saves"
- : #> optimize="$optimize -funroll-loops"
- : #> optimize="$optimize -funroll-all-loops"
- : #x optimize="$optimize -fmove-all-movables"
- : #x optimize="$optimize -freduce-all-givs"
- : #? optimize="$optimize -fstrict-aliasing"
- : #* optimize="$optimize -fstructure-noalias"
-
- case "$host" in
- arm*-*)
- optimize="$optimize -fstrength-reduce"
- ;;
- mips*-*)
- optimize="$optimize -fstrength-reduce"
- optimize="$optimize -finline-functions"
- ;;
- i?86-*)
- optimize="$optimize -fstrength-reduce"
- ;;
- powerpc-apple-*)
- # this triggers an internal compiler error with gcc2
- : #optimize="$optimize -fstrength-reduce"
-
- # this is really only beneficial with gcc3
- : #optimize="$optimize -finline-functions"
- ;;
- *)
- # this sometimes provokes bugs in gcc 2.95.2
- : #optimize="$optimize -fstrength-reduce"
- ;;
- esac
- ;;
- esac
-fi
+#if test "$GCC" = yes
+#then
+# if test -z "$arch"
+# then
+# case "$host" in
+# i386-*) ;;
+# i?86-*) arch="-march=i486" ;;
+# arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
+# armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
+# powerpc-*) ;;
+# mips*-agenda-*) arch="-mcpu=vr4100" ;;
+# mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
+# esac
+# fi
+#
+# case "$optimize" in
+# -O|"-O "*)
+# optimize="-O"
+# optimize="$optimize -fforce-mem"
+# optimize="$optimize -fforce-addr"
+# : #x optimize="$optimize -finline-functions"
+# : #- optimize="$optimize -fstrength-reduce"
+# optimize="$optimize -fthread-jumps"
+# optimize="$optimize -fcse-follow-jumps"
+# optimize="$optimize -fcse-skip-blocks"
+# : #x optimize="$optimize -frerun-cse-after-loop"
+# : #x optimize="$optimize -frerun-loop-opt"
+# : #x optimize="$optimize -fgcse"
+# optimize="$optimize -fexpensive-optimizations"
+# optimize="$optimize -fregmove"
+# : #* optimize="$optimize -fdelayed-branch"
+# : #x optimize="$optimize -fschedule-insns"
+# optimize="$optimize -fschedule-insns2"
+# : #? optimize="$optimize -ffunction-sections"
+# : #? optimize="$optimize -fcaller-saves"
+# : #> optimize="$optimize -funroll-loops"
+# : #> optimize="$optimize -funroll-all-loops"
+# : #x optimize="$optimize -fmove-all-movables"
+# : #x optimize="$optimize -freduce-all-givs"
+# : #? optimize="$optimize -fstrict-aliasing"
+# : #* optimize="$optimize -fstructure-noalias"
+#
+# case "$host" in
+# arm*-*)
+# optimize="$optimize -fstrength-reduce"
+# ;;
+# mips*-*)
+# optimize="$optimize -fstrength-reduce"
+# optimize="$optimize -finline-functions"
+# ;;
+# i?86-*)
+# optimize="$optimize -fstrength-reduce"
+# ;;
+# powerpc-apple-*)
+# # this triggers an internal compiler error with gcc2
+# : #optimize="$optimize -fstrength-reduce"
+#
+# # this is really only beneficial with gcc3
+# : #optimize="$optimize -finline-functions"
+# ;;
+# *)
+# # this sometimes provokes bugs in gcc 2.95.2
+# : #optimize="$optimize -fstrength-reduce"
+# ;;
+# esac
+# ;;
+# esac
+#fi
case "$host" in
mips*-agenda-*)

View File

@@ -0,0 +1,38 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="libgdiplus"
PKG_VERSION="4.2"
PKG_REV="0"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/mono/libgdiplus"
PKG_URL="https://github.com/mono/libgdiplus/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain giflib libjpeg-turbo tiff libXext libexif glib cairo"
PKG_SECTION="tools"
PKG_PRIORITY="optional"
PKG_SHORTDESC="libgiplus"
PKG_LONGDESC="An Open Source implementation of the GDI+ API"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--enable-shared \
--with-libgif \
--with-libjpeg \
--with-libtiff"

View File

@@ -0,0 +1,32 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. "$ROOT/packages/databases/sqlite/package.mk"
PKG_NAME="mono_sqlite"
PKG_URL=""
PKG_DEPENDS_TARGET="toolchain sqlite"
PKG_SHORTDESC="sqlite for mono"
PKG_LONGDESC="libsqlite built shared for mono"
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-static --enable-shared"
unpack() {
mkdir -p $PKG_BUILD
cp -r $(get_build_dir sqlite)/* $PKG_BUILD/
}

View File

@@ -0,0 +1,41 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="moonlight-common-c"
PKG_VERSION="1d058cb"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/irtimmer/moonlight-common-c"
PKG_URL="https://github.com/irtimmer/moonlight-common-c/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="Shared C code for the implementation of Nvidia's GameStream protocol"
PKG_LONGDESC="Shared C code for the implementation of Nvidia's GameStream protocol"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
make_target() {
:
}
makeinstall_target() {
:
}

View File

@@ -0,0 +1,59 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="moonlight-embedded"
PKG_VERSION="2.2.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/irtimmer/moonlight-embedded"
PKG_URL="https://github.com/irtimmer/moonlight-embedded/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain curl libcec pulseaudio ffmpeg systemd alsa-lib moonlight-common-c libevdev enet opus"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="Gamestream client for embedded systems"
PKG_LONGDESC="Moonlight Embedded is an open source implementation of NVIDIA's GameStream, as used by the NVIDIA Shield, but built for Linux"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET bcm2835-driver"
elif [ "$KODIPLAYER_DRIVER" = "libfslvpuwrap" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET imx-gpu-viv"
elif [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libamcodec"
elif [ "$DISPLAYSERVER" = "x11" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libvdpau SDL2 ffmpeg libxcb"
fi
pre_build_target() {
cp -a $(get_build_dir moonlight-common-c)/* $ROOT/$PKG_BUILD/third_party/moonlight-common-c
}
configure_target() {
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \
..
}
makeinstall_target() {
:
}

View File

@@ -0,0 +1,12 @@
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 2016-04-03 05:34:15.000000000 -0700
+++ b/CMakeLists.txt 2016-05-04 14:33:19.840052271 -0700
@@ -139,7 +139,7 @@
set_property(TARGET moonlight PROPERTY COMPILE_DEFINITIONS ${MOONLIGHT_DEFINITIONS})
target_include_directories(moonlight PRIVATE ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR} ${OPUS_INCLUDE_DIRS} ${EVDEV_INCLUDE_DIRS} ${UDEV_INCLUDE_DIRS})
-target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${ALSA_LIBRARY} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS})
+target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${ALSA_LIBRARY} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS} m)
add_subdirectory(docs)

View File

@@ -24,7 +24,7 @@ PKG_LICENSE="GPL"
PKG_SITE="http://mediaarea.net/en/MediaInfo/Download/Source"
PKG_URL="http://mediaarea.net/download/source/libmediainfo/$PKG_VERSION/libmediainfo_$PKG_VERSION.tar.bz2"
PKG_SOURCE_DIR="MediaInfoLib"
PKG_DEPENDS_TARGET="toolchain libzen"
PKG_DEPENDS_TARGET="toolchain libzen zlib"
PKG_PRIORITY="optional"
PKG_SECTION="multimedia"
PKG_SHORTDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files"

View File

@@ -0,0 +1,35 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="mpg123"
PKG_VERSION="1.23.6"
PKG_REV="0"
PKG_ARCH="any"
PKG_LICENSE="LGPLv2"
PKG_SITE="http://www.mpg123.org/"
PKG_URL="http://netcologne.dl.sourceforge.net/project/$PKG_NAME/$PKG_NAME/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
PKG_DEPENDS_TARGET="toolchain alsa-lib SDL2"
PKG_SECTION="tools"
PKG_PRIORITY="optional"
PKG_SHORTDESC="mpg123"
PKG_LONGDESC="A fast MP3 Player"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static"

View File

@@ -0,0 +1,43 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="squeezelite"
PKG_VERSION="33cca7e"
PKG_REV="0"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/ralph-irving/squeezelite"
PKG_URL="https://github.com/ralph-irving/squeezelite/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain faad2 ffmpeg flac libmad libvorbis mpg123 soxr"
PKG_SECTION="tools"
PKG_PRIORITY="optional"
PKG_SHORTDESC="squeezelite"
PKG_LONGDESC="A client for the Logitech Media Server"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
pre_make_target() {
OPTS="-DDSD -DFFMPEG -DRESAMPLE -DVISEXPORT"
CFLAGS="$CFLAGS $OPTS"
LDFLAGS="$LDFLAGS -lasound -lpthread -lm -lrt"
}
makeinstall_target() {
:
}

View File

@@ -25,7 +25,7 @@ PKG_ARCH="any"
PKG_LICENSE="Mozilla Public License"
PKG_SITE="http://ftp.mozilla.org/"
PKG_URL="http://ftp.mozilla.org/pub/security/nss/releases/NSS_3_22_3_RTM/src/nss-3.22.3-with-nspr-4.12.tar.gz"
PKG_DEPENDS_TARGET="toolchain nss:host nspr"
PKG_DEPENDS_TARGET="toolchain nss:host nspr zlib"
PKG_PRIORITY="optional"
PKG_SECTION="security"
PKG_SHORTDESC="The Network Security Services (NSS) package is a set of libraries designed to support cross-platform development of security-enabled client and server applications"

View File

@@ -0,0 +1,43 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="opus"
PKG_VERSION="1.1.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="BSD"
PKG_SITE="http://www.opus-codec.org"
PKG_URL="http://downloads.us.xiph.org/releases/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="audio"
PKG_SHORTDESC="Codec designed for interactive speech and audio transmission over the Internet"
PKG_LONGDESC="Codec designed for interactive speech and audio transmission over the Internet"
PKG_IS_ADDON="no"
PKG_AUTORECONF="yes"
if [ "$TARGET_ARCH" = "arm" ]; then
FIXED_POINT="--enable-fixed-point"
else
FIXED_POINT="--disable-fixed-point"
fi
PKG_CONFIGURE_OPTS_TARGET="--enable-static \
--disable-shared \
$FIXED_POINT"

View File

@@ -0,0 +1,41 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="rpi_ws281x"
PKG_VERSION="3e6ea50"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE=""
PKG_SITE="https://github.com/hyperion-project/rpi_ws281x"
PKG_URL="https://github.com/hyperion-project/rpi_ws281x/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION=""
PKG_SHORTDESC="Userspace Raspberry Pi PWM library for WS281X LEDs"
PKG_LONGDESC="Userspace Raspberry Pi PWM library for WS281X LEDs"
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
make_target() {
:
}
makeinstall_target() {
:
}

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="runc"
PKG_VERSION="e874369"
PKG_VERSION="02f8fa7"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="APL"

View File

@@ -0,0 +1,39 @@
################################################################################
# This file is part of LibreELEC - http://www.libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="inotify-tools"
PKG_VERSION="1df9af4"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="http://wiki.github.com/rvoicilas/inotify-tools/"
PKG_URL="https://github.com/rvoicilas/$PKG_NAME/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_PRIORITY="optional"
PKG_SECTION="tools"
PKG_SHORTDESC="inotify-tools"
PKG_LONGDESC="a C library and a set of command-line programs for Linux providing a simple interface to inotify"
PKG_AUTORECONF="yes"
PKG_IS_ADDON="no"
PKG_CONFIGURE_OPTS_TARGET="--enable-static --disable-shared"
makeinstall_target() {
: nothing to do
}

View File

@@ -0,0 +1,63 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="mc"
PKG_VERSION="4.8.17"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.midnight-commander.org"
PKG_URL="http://ftp.midnight-commander.org/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_DEPENDS_TARGET="toolchain libtool:host gettext:host glib pcre ncurses"
PKG_PRIORITY="optional"
PKG_SECTION="tools"
PKG_SHORTDESC="mc: visual file manager"
PKG_LONGDESC="mc is a visual file manager, licensed under GNU General Public License and therefore qualifies as Free Software. It's a feature rich full-screen text mode application that allows you to copy, move and delete files and whole directory trees, search for files and run commands in the subshell. Internal viewer and editor are included"
PKG_AUTORECONF="yes"
PKG_IS_ADDON="no"
PKG_CONFIGURE_OPTS_TARGET="--sysconfdir=/storage/.kodi/addons/virtual.system-tools/etc \
--datadir=/storage/.kodi/addons/virtual.system-tools/data \
--libdir=/storage/.kodi/addons/virtual.system-tools/mclib \
--disable-mclib \
--disable-aspell \
--disable-vfs \
--disable-doxygen-doc \
--disable-doxygen-dot \
--disable-doxygen-html \
--with-sysroot=$SYSROOT_PREFIX \
--with-screen=ncurses \
--without-x \
--with-gnu-ld \
--without-libiconv-prefix \
--without-libintl-prefix \
--with-internal-edit \
--without-diff-viewer \
--with-subshell"
pre_configure_target() {
export CFLAGS="$CFLAGS -I$SYSROOT_PREFIX/usr/include/ncurses"
export LDFLAGS="$(echo $LDFLAGS | sed -e "s|-Wl,--as-needed||")"
}
post_makeinstall_target() {
rm -rf $INSTALL/storage/.kodi/addons/virtual.system-tools/data/locale
rm -rf $INSTALL/storage/.kodi/addons/virtual.system-tools/data/mc/help/mc.hlp.*
}

View File

@@ -0,0 +1,50 @@
From 38d4c655d322837574e957b4a824f4a0d1bb3b86 Mon Sep 17 00:00:00 2001
From: rofl0r <retnyg@gmx.net>
Date: Mon, 18 Jul 2016 22:19:56 +0100
Subject: [PATCH] Ticket #3665: fix compatibility with netbsd curses.
The code that manipulates the ncurses backend into changing
the key combination to generate SIGINT from CTRL-c to CTRL-g does
so by accessing undocumented internal ncurses data structures.
This breaks compilation with netbsd-curses[0], and could also break
when the ncurses author decides to change internal structures in a
future release.
Fix it by using a portable approach that works everywhere using libc
primitives instead.
[0] https://github.com/sabotage-linux/netbsd-curses
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
---
lib/tty/tty-ncurses.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/lib/tty/tty-ncurses.c b/lib/tty/tty-ncurses.c
index efee8ec..76a21d2 100644
--- a/lib/tty/tty-ncurses.c
+++ b/lib/tty/tty-ncurses.c
@@ -179,6 +179,7 @@ mc_tty_normalize_lines_char (const char *ch)
void
tty_init (gboolean mouse_enable, gboolean is_xterm)
{
+ struct termios mode;
initscr ();
#ifdef HAVE_ESCDELAY
@@ -194,11 +195,12 @@ tty_init (gboolean mouse_enable, gboolean is_xterm)
ESCDELAY = 200;
#endif /* HAVE_ESCDELAY */
+ tcgetattr (STDIN_FILENO, &mode);
/* use Ctrl-g to generate SIGINT */
- cur_term->Nttyb.c_cc[VINTR] = CTRL ('g'); /* ^g */
+ mode.c_cc[VINTR] = CTRL ('g'); /* ^g */
/* disable SIGQUIT to allow use Ctrl-\ key */
- cur_term->Nttyb.c_cc[VQUIT] = NULL_VALUE;
- tcsetattr (cur_term->Filedes, TCSANOW, &cur_term->Nttyb);
+ mode.c_cc[VQUIT] = NULL_VALUE;
+ tcsetattr (STDIN_FILENO, TCSANOW, &mode);
tty_start_interrupt_key ();

View File

@@ -0,0 +1,27 @@
From 2da86f2595157c68c2d49e6c2b08a508750878ed Mon Sep 17 00:00:00 2001
From: Andrew Borodin <aborodin@vmail.ru>
Date: Tue, 9 Aug 2016 16:55:12 +0300
Subject: [PATCH] Define NCURSES_CONST if curses library doesn't define it.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
---
lib/tty/tty-ncurses.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lib/tty/tty-ncurses.h b/lib/tty/tty-ncurses.h
index 4f0e603..9962c7c 100644
--- a/lib/tty/tty-ncurses.h
+++ b/lib/tty/tty-ncurses.h
@@ -20,6 +20,11 @@
#include <ncursesw/curses.h>
#endif /* USE_NCURSESW */
+/* netbsd-libcurses doesn't define NCURSES_CONST */
+#ifndef NCURSES_CONST
+#define NCURSES_CONST const
+#endif
+
/*** typedefs(not structures) and defined constants **********************************************/
/*** enums ***************************************************************************************/

View File

@@ -0,0 +1,43 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="unclutter"
PKG_VERSION="1.09"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Public Domain"
PKG_SITE="https://sourceforge.net/projects/unclutter/"
PKG_URL="http://jaist.dl.sourceforge.net/project/unclutter/unclutter/source_$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain libX11"
PKG_PRIORITY="optional"
PKG_SECTION="x11"
PKG_SHORTDESC="Unclutter: Hide X11 Cursor"
PKG_LONGDESC="Unclutter runs in the background of an X11 session and after a specified period of inactivity hides the cursor from display. When the cursor is moved its display is restored. Users may specify specific windows to be ignored by unclutter."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
make_target() {
rm -f Makefile
LDFLAGS="$LDFLAGS -lX11" $MAKE unclutter
}
makeinstall_target() {
mkdir -p .install_pkg/usr/bin
install -m 755 unclutter .install_pkg/usr/bin/
}

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="vdr-plugin-satip"
PKG_VERSION="18c9b79"
PKG_VERSION="7815821"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -0,0 +1,47 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="xdotool"
PKG_VERSION="2.20110530.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.semicomplete.com/projects/xdotool/"
PKG_URL="http://semicomplete.googlecode.com/files/${PKG_NAME}-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain libXinerama libXtst"
PKG_PRIORITY="optional"
PKG_SECTION="x11/app"
PKG_SHORTDESC="This tool lets you simulate keyboard input and mouse activity, move and resize windows, etc."
PKG_LONGDESC="This tool lets you simulate keyboard input and mouse activity, move and resize windows, etc."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
pre_configure_target() {
LDFLAGS="$LDFLAGS -lXext"
}
make_target() {
make xdotool.static
mv xdotool.static xdotool
}
makeinstall_target() {
: # nothing to do here
}

View File

@@ -1,3 +1,12 @@
7.0.104
- Update to 53.0.2785.92
7.0.103
- add xdotool
7.0.102
- add unclutter
7.0.101
- update to version 50.0.2661.75

View File

@@ -19,17 +19,17 @@
################################################################################
PKG_NAME="chromium"
PKG_VERSION="50.0.2661.75"
PKG_REV="101"
PKG_VERSION="53.0.2785.92"
PKG_REV="104"
PKG_ARCH="x86_64"
PKG_LICENSE="Mixed"
PKG_SITE="http://www.chromium.org/Home"
PKG_URL="https://commondatastorage.googleapis.com/chromium-browser-official/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain pciutils dbus libXcomposite libXcursor libXtst alsa-lib bzip2 yasm nss libXScrnSaver libexif ninja:host libpng harfbuzz atk gtk+ libva-vdpau-driver"
PKG_DEPENDS_TARGET="toolchain pciutils dbus libXcomposite libXcursor libXtst alsa-lib bzip2 yasm nss libXScrnSaver libexif ninja:host libpng harfbuzz atk gtk+ libva-vdpau-driver unclutter xdotool"
PKG_PRIORITY="optional"
PKG_SECTION="browser"
PKG_SHORTDESC="Chromium Browser: the open-source web browser from Google"
PKG_LONGDESC="Chromium Browser: the open-source web browser from Google"
PKG_LONGDESC="Chromium Browser ($PKG_VERSION): the open-source web browser from Google"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
@@ -45,6 +45,8 @@ pre_make_target() {
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
touch chrome/test/data/webui/i18n_process_css_test.html
sed -i -e 's/@WIDEVINE_VERSION@/Pinkie Pie/' third_party/widevine/cdm/stub/widevine_cdm_version.h
}
make_target() {
@@ -171,4 +173,10 @@ addon() {
# libva-vdpau-driver
cp -PL $(get_build_dir libva-vdpau-driver)/.install_pkg/usr/lib/va/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib
# unclutter
cp -P $(get_build_dir unclutter)/.install_pkg/usr/bin/unclutter $ADDON_BUILD/$PKG_ADDON_ID/bin
# xdotool
cp -P $(get_build_dir xdotool)/xdotool $ADDON_BUILD/$PKG_ADDON_ID/bin
}

View File

@@ -1,46 +1,3 @@
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc chromium-48.0.2564.82/chrome/common/chrome_content_client.cc
--- chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc 2016-01-20 22:01:20.000000000 +0200
+++ chromium-48.0.2564.82/chrome/common/chrome_content_client.cc 2016-01-21 20:02:02.788936626 +0200
@@ -158,7 +158,12 @@ void ComputeBuiltInPlugins(std::vector<c
#if defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS) && \
!defined(WIDEVINE_CDM_IS_COMPONENT)
static bool skip_widevine_cdm_file_check = false;
- if (PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, &path)) {
+ bool widevine_cdm_present =
+ skip_widevine_cdm_file_check ||
+ (PathService::Get(chrome::FILE_WIDEVINE_CDM, &path) &&
+ base::PathExists(path));
+ if (widevine_cdm_present &&
+ PathService::Get(chrome::FILE_WIDEVINE_CDM_ADAPTER, &path)) {
if (skip_widevine_cdm_file_check || base::PathExists(path)) {
content::PepperPluginInfo widevine_cdm;
widevine_cdm.is_out_of_process = true;
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_paths.cc chromium-48.0.2564.82/chrome/common/chrome_paths.cc
--- chromium-48.0.2564.82.orig/chrome/common/chrome_paths.cc 2016-01-20 22:01:20.000000000 +0200
+++ chromium-48.0.2564.82/chrome/common/chrome_paths.cc 2016-01-21 19:18:51.287978456 +0200
@@ -375,6 +375,11 @@ bool PathProvider(int key, base::FilePat
return false;
cur = cur.AppendASCII(kWidevineCdmAdapterFileName);
break;
+ case chrome::FILE_WIDEVINE_CDM:
+ if (!GetInternalPluginsDirectory(&cur))
+ return false;
+ cur = cur.AppendASCII(kWidevineCdmFileName);
+ break;
#endif // defined(WIDEVINE_CDM_AVAILABLE) && defined(ENABLE_PEPPER_CDMS)
case chrome::FILE_RESOURCES_PACK:
#if defined(OS_MACOSX) && !defined(OS_IOS)
diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_paths.h chromium-48.0.2564.82/chrome/common/chrome_paths.h
--- chromium-48.0.2564.82.orig/chrome/common/chrome_paths.h 2016-01-14 03:49:22.000000000 +0200
+++ chromium-48.0.2564.82/chrome/common/chrome_paths.h 2016-01-21 19:18:51.287978456 +0200
@@ -99,6 +99,7 @@ enum {
DIR_COMPONENT_WIDEVINE_CDM, // Directory that contains component-updated
// Widevine CDM files.
FILE_WIDEVINE_CDM_ADAPTER, // Full path to the Widevine CDM adapter file.
+ FILE_WIDEVINE_CDM, // Full path to the Widevine CDM file.
FILE_RESOURCES_PACK, // Full path to the .pak file containing
// binary data (e.g., html files and images
// used by internal pages).
diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h
--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200
+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200
@@ -48,6 +5,6 @@ diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_
#define WIDEVINE_CDM_AVAILABLE
+#define WIDEVINE_CDM_VERSION_STRING "Pinkie Pie"
+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@"
+
#endif // WIDEVINE_CDM_VERSION_H_

View File

@@ -0,0 +1,15 @@
diff -up chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
--- chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free 2016-08-15 13:07:29.279655676 -0400
+++ chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-15 13:08:38.447317416 -0400
@@ -41,6 +41,11 @@
#include <errno.h>
#include <sys/mman.h>
+#if OS(LINUX) && defined(MADV_FREE)
+// Added in Linux 4.5, but it breaks the sandbox.
+#undef MADV_FREE
+#endif
+
#ifndef MADV_FREE
#define MADV_FREE MADV_DONTNEED
#endif

View File

@@ -1,89 +1,34 @@
Description: Enables using VA-API hardware acceleration in Linux. The patch for bpf_gpu_policy_linux.cc initially came from https://codereview.chromium.org/15955009/diff/92001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc.
From 0cc8e208feef2c49b8f2344005e97684b5e84012 Mon Sep 17 00:00:00 2001
From: Knut Andre Tidemann <Knut.Andre.Tidemann@jotron.com>
Date: Mon, 29 Aug 2016 20:57:27 +0200
Subject: [PATCH] Enable VAAPI on Linux.
Index: dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc
===================================================================
--- dev.wily.orig/content/common/gpu/media/gpu_video_decode_accelerator.cc
+++ dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc
@@ -34,7 +34,7 @@
#include "content/common/gpu/media/dxva_video_decode_accelerator_win.h"
#elif defined(OS_MACOSX)
#include "content/common/gpu/media/vt_video_decode_accelerator_mac.h"
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "content/common/gpu/media/v4l2_device.h"
#include "content/common/gpu/media/v4l2_slice_video_decode_accelerator.h"
@@ -164,7 +164,7 @@
#if defined(OS_WIN)
capabilities.supported_profiles =
DXVAVideoDecodeAccelerator::GetSupportedProfiles();
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
media::VideoDecodeAccelerator::SupportedProfiles vda_profiles;
#if defined(USE_V4L2_CODEC)
vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles();
@@ -251,6 +251,8 @@ void GpuVideoDecodeAccelerator::Initiali
}
#endif
+ VLOG(1) << "Initializing GPU video decode accelerator.";
+
// Array of Create..VDA() function pointers, maybe applicable to the current
// platform. This list is ordered by priority of use and it should be the
// same as the order of querying supported profiles of VDAs.
@@ -361,11 +361,14 @@
&GpuVideoDecodeAccelerator::CreateAndroidVDA};
for (const auto& create_vda_function : create_vda_fps) {
+ VLOG(1) << "Testing create_vda_function.";
video_decode_accelerator_ = (this->*create_vda_function)();
if (!video_decode_accelerator_ ||
!video_decode_accelerator_->Initialize(config, this))
continue;
+ VLOG(1) << "Initialization successful.";
+
if (video_decode_accelerator_->CanDecodeOnIOThread()) {
filter_ = new MessageFilter(this, host_route_id_);
stub_->channel()->AddFilter(filter_.get());
@@ -346,7 +351,9 @@ void GpuVideoDecodeAccelerator::BindImag
scoped_ptr<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateVaapiVDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+ VLOG(1) << "About to create new VAAPI video decode accelerator.";
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
+ VLOG(1) << "Creating new VAAPI video decode accelerator.";
decoder.reset(new VaapiVideoDecodeAccelerator(
make_context_current_, base::Bind(&GpuVideoDecodeAccelerator::BindImage,
base::Unretained(this))));
Index: dev.wily/content/content_common.gypi
===================================================================
--- dev.wily.orig/content/content_common.gypi
+++ dev.wily/content/content_common.gypi
@@ -856,7 +856,7 @@
},
],
}],
- ['chromeos==1', {
+ ['chromeos==1 or desktop_linux==1', {
'sources': [
'common/gpu/media/accelerated_video_decoder.h',
'common/gpu/media/h264_decoder.cc',
@@ -908,7 +908,7 @@
'common/gpu/media/tegra_v4l2_device.h',
],
}],
- ['target_arch != "arm" and chromeos == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
'dependencies': [
'../media/media.gyp:media',
'../third_party/libyuv/libyuv.gyp:libyuv',
Index: dev.wily/content/content_gpu.gypi
===================================================================
--- dev.wily.orig/content/content_gpu.gypi
+++ dev.wily/content/content_gpu.gypi
@@ -36,7 +36,7 @@
---
content/content_gpu.gypi | 2 +-
content/public/common/content_switches.cc | 2 ++
content/public/common/content_switches.h | 3 +++
gpu/command_buffer/service/gpu_preferences.h | 2 +-
gpu/config/software_rendering_list_json.cc | 11 -----------
media/gpu/BUILD.gn | 10 +++++-----
media/gpu/gpu_video_decode_accelerator_factory_impl.cc | 12 ++++++------
media/gpu/gpu_video_decode_accelerator_factory_impl.h | 4 ++--
media/gpu/ipc/service/BUILD.gn | 2 +-
media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc | 6 +++---
media/gpu/ipc/service/gpu_video_decode_accelerator.cc | 4 ++--
media/gpu/ipc/service/gpu_video_encode_accelerator.cc | 10 +++++-----
media/gpu/ipc/service/gpu_video_encode_accelerator.h | 4 ++--
media/gpu/jpeg_decode_accelerator_unittest.cc | 8 ++++----
media/gpu/video_decode_accelerator_unittest.cc | 4 ++--
media/gpu/video_encode_accelerator_unittest.cc | 10 +++++-----
media/media.gyp | 12 ++++++------
media/media_gpu.gypi | 8 ++++----
18 files changed, 54 insertions(+), 60 deletions(-)
diff --git a/content/content_gpu.gypi b/content/content_gpu.gypi
index f2a21d9..f9df0e6 100644
--- a/content/content_gpu.gypi
+++ b/content/content_gpu.gypi
@@ -49,7 +49,7 @@
],
},
}],
@@ -92,24 +37,11 @@ Index: dev.wily/content/content_gpu.gypi
'include_dirs': [
'<(DEPTH)/third_party/libva',
],
Index: dev.wily/content/content_tests.gypi
===================================================================
--- dev.wily.orig/content/content_tests.gypi
+++ dev.wily/content/content_tests.gypi
@@ -1719,7 +1719,7 @@
},
]
}],
- ['chromeos==1 and target_arch != "arm"', {
+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', {
'targets': [
{
'target_name': 'vaapi_jpeg_decoder_unittest',
Index: dev.wily/content/public/common/content_switches.cc
===================================================================
--- dev.wily.orig/content/public/common/content_switches.cc
+++ dev.wily/content/public/common/content_switches.cc
@@ -926,7 +926,9 @@ const char kDisableWebAudio[]
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index 244e371..48cdffb 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -970,7 +970,9 @@ const char kDisableAudioSupportForDesktopShare[] =
#if defined(OS_CHROMEOS)
// Disables panel fitting (used for mirror mode).
const char kDisablePanelFitting[] = "disable-panel-fitting";
@@ -119,46 +51,38 @@ Index: dev.wily/content/public/common/content_switches.cc
// Disables VA-API accelerated video encode.
const char kDisableVaapiAcceleratedVideoEncode[] =
"disable-vaapi-accelerated-video-encode";
Index: dev.wily/content/public/common/content_switches.h
===================================================================
--- dev.wily.orig/content/public/common/content_switches.h
+++ dev.wily/content/public/common/content_switches.h
@@ -272,6 +272,8 @@ CONTENT_EXPORT extern const char kDisabl
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index be5cc9e..9585fb6 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -278,6 +278,9 @@ CONTENT_EXPORT extern const char kEnableOSKOverscroll[];
#if defined(OS_CHROMEOS)
CONTENT_EXPORT extern const char kDisablePanelFitting[];
+#endif
+
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[];
#endif
Index: dev.wily/media/media.gyp
===================================================================
--- dev.wily.orig/media/media.gyp
+++ dev.wily/media/media.gyp
@@ -756,7 +756,7 @@
],
}],
# For VaapiVideoEncodeAccelerator.
- ['target_arch != "arm" and chromeos == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
'sources': [
'filters/h264_bitstream_buffer.cc',
'filters/h264_bitstream_buffer.h',
@@ -1359,7 +1359,7 @@
'player_android',
],
}],
- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', {
'sources': [
'filters/h264_bitstream_buffer_unittest.cc',
],
Index: dev.wily/gpu/config/software_rendering_list_json.cc
===================================================================
--- dev.wily.orig/gpu/config/software_rendering_list_json.cc
+++ dev.wily/gpu/config/software_rendering_list_json.cc
@@ -481,17 +481,6 @@ const char kSoftwareRenderingListJson[]
diff --git a/gpu/command_buffer/service/gpu_preferences.h b/gpu/command_buffer/service/gpu_preferences.h
index 6fe15b0..ee31d3e 100644
--- a/gpu/command_buffer/service/gpu_preferences.h
+++ b/gpu/command_buffer/service/gpu_preferences.h
@@ -37,7 +37,7 @@ struct GPU_EXPORT GpuPreferences {
// Disables hardware acceleration of video decode, where available.
bool disable_accelerated_video_decode = false;
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
// Disables VA-API accelerated video encode.
bool disable_vaapi_accelerated_video_encode = false;
#endif
diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc
index 9adc5f0..abf7bc5 100644
--- a/gpu/config/software_rendering_list_json.cc
+++ b/gpu/config/software_rendering_list_json.cc
@@ -431,17 +431,6 @@
]
},
{
@@ -173,318 +97,458 @@ Index: dev.wily/gpu/config/software_rendering_list_json.cc
- ]
- },
- {
"id": 49,
"description": "NVidia GeForce GT 650M can cause the system to hang with flash 3D",
"cr_bugs": [140175],
@@ -1042,6 +1042,11 @@
},
{
"os": {
+ "type": "linux"
+ }
+ },
+ {
+ "os": {
"type": "android"
},
"gl_renderer": ".*Google.*"
Index: dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
===================================================================
--- dev.wily.orig/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
+++ dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
@@ -21,6 +21,8 @@
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "build/build_config.h"
+// Auto-generated for dlopen libva libraries
+#include "content/common/gpu/media/va_stubs.h"
#include "content/common/sandbox_linux/sandbox_bpf_base_policy_linux.h"
#include "content/common/sandbox_linux/sandbox_seccomp_bpf_linux.h"
#include "content/common/set_process_title.h"
@@ -31,6 +33,8 @@
#include "sandbox/linux/syscall_broker/broker_file_permission.h"
#include "sandbox/linux/syscall_broker/broker_process.h"
#include "sandbox/linux/system_headers/linux_syscalls.h"
+#include "third_party/libva/va/va.h"
+#include "third_party/libva/va/va_x11.h"
using sandbox::arch_seccomp_data;
using sandbox::bpf_dsl::Allow;
@@ -40,6 +44,11 @@ using sandbox::syscall_broker::BrokerFil
using sandbox::syscall_broker::BrokerProcess;
using sandbox::SyscallSets;
+using content_common_gpu_media::kModuleVa;
+using content_common_gpu_media::kModuleVa_x11;
+using content_common_gpu_media::InitializeStubs;
+using content_common_gpu_media::StubPathMap;
+
namespace content {
namespace {
@@ -94,7 +103,7 @@ inline bool UseLibV4L2() {
bool IsAcceleratedVaapiVideoEncodeEnabled() {
bool accelerated_encode_enabled = false;
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
accelerated_encode_enabled =
@@ -299,27 +299,41 @@
// inside the sandbox, so preload them now.
if (IsAcceleratedVaapiVideoEncodeEnabled() ||
IsAcceleratedVideoDecodeEnabled()) {
- const char* I965DrvVideoPath = NULL;
- const char* I965HybridDrvVideoPath = NULL;
+ VLOG(1) << "Attempting to enable hardware video acceleration.";
+ StubPathMap paths;
+ paths[kModuleVa].push_back("libva.so.1");
+ paths[kModuleVa_x11].push_back("libva-x11.so.1");
+ if (!InitializeStubs(paths)) {
+ VLOG(1) << "Failed to initialize stubs";
+ return false;
+ }
- if (IsArchitectureX86_64()) {
- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so";
- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so";
- } else if (IsArchitectureI386()) {
- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so";
+ // libva drivers won't get loaded even above two libraries get dlopened.
+ // Thus, libva calls will fail after post sandbox stage.
+ //
+ // To get the va driver loaded before sandboxing, upstream simply dlopen
+ // the hard-coded va driver path because ChromeOS is the only platform
+ // that Google want to support libva.
+ //
+ // While generic linux distros ship va driver as anywhere they want.
+ // Fortunately, the va driver will be loadded when vaInitialize() get
+ // called.
+ // So the following code is to call vaInitialize() before sandboxing.
+ Display* x_display = XOpenDisplay(NULL);
+ VADisplay va_display = vaGetDisplay(x_display);
+ if (!vaDisplayIsValid(va_display)) {
+ VLOG(1) << "Failed to call vaGetDisplay()";
+ return false;
}
- dlopen(I965DrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
- if (I965HybridDrvVideoPath)
- dlopen(I965HybridDrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
- dlopen("libva.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
-#if defined(USE_OZONE)
- dlopen("libva-drm.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
-#elif defined(USE_X11)
- dlopen("libva-x11.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE);
-#endif
- }
- }
+ int major_version, minor_version;
+ if (vaInitialize(va_display, &major_version, &minor_version)
+ != VA_STATUS_SUCCESS) {
+ VLOG(1) << "Failed to call vaInitialize()";
+ return false;
+ }
+ } // end of IsAcceleratedVaapiVideoEncodeEnabled() || IsAcceleratedVideoDecodeEnabled()
+ } // end of IsArchitectureX86_64() || IsArchitectureI386()
return true;
"id": 50,
"description": "Disable VMware software renderer on older Mesa",
"cr_bugs": [145531, 332596, 571899],
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
index ba02e8a..c31bae2 100644
--- a/media/gpu/BUILD.gn
+++ b/media/gpu/BUILD.gn
@@ -12,7 +12,7 @@ if (is_mac) {
import("//build/config/mac/mac_sdk.gni")
}
Index: dev.wily/chrome/browser/about_flags.cc
===================================================================
--- dev.wily.orig/chrome/browser/about_flags.cc
+++ dev.wily/chrome/browser/about_flags.cc
@@ -854,7 +854,7 @@
"disable-accelerated-video-decode",
IDS_FLAGS_ACCELERATED_VIDEO_DECODE_NAME,
IDS_FLAGS_ACCELERATED_VIDEO_DECODE_DESCRIPTION,
- kOsMac | kOsWin | kOsCrOS,
+ kOsAll,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
},
#if defined(USE_ASH)
Index: dev.wily/content/common/gpu/media/vaapi_wrapper.cc
===================================================================
--- dev.wily.orig/content/common/gpu/media/vaapi_wrapper.cc
+++ dev.wily/content/common/gpu/media/vaapi_wrapper.cc
@@ -146,7 +146,7 @@ scoped_ptr<VaapiWrapper> VaapiWrapper::C
VAProfile va_profile,
const base::Closure& report_error_to_uma_cb) {
if (!profile_infos_.Get().IsProfileSupported(mode, va_profile)) {
- DVLOG(1) << "Unsupported va_profile: " << va_profile;
+ VLOG(1) << "Unsupported va_profile: " << va_profile;
return nullptr;
}
@@ -305,15 +305,17 @@ VaapiWrapper::GetSupportedProfileInfosFo
bool VaapiWrapper::VaInitialize(const base::Closure& report_error_to_uma_cb) {
static bool vaapi_functions_initialized = PostSandboxInitialization();
if (!vaapi_functions_initialized) {
- bool running_on_chromeos = false;
-#if defined(OS_CHROMEOS)
+ bool error_level_logging = false;
+#if defined(OS_LINUX)
+ error_level_logging = true;
+#elif defined(OS_CHROMEOS)
// When chrome runs on linux with chromeos=1, do not log error message
// without VAAPI libraries.
- running_on_chromeos = base::SysInfo::IsRunningOnChromeOS();
+ error_level_logging = base::SysInfo::IsRunningOnChromeOS();
#endif
static const char kErrorMsg[] = "Failed to initialize VAAPI libs";
- if (running_on_chromeos)
- LOG(ERROR) << kErrorMsg;
+ if (error_level_logging)
+ VLOG(1) << kErrorMsg;
else
DVLOG(1) << kErrorMsg;
return false;
@@ -384,7 +386,7 @@ bool VaapiWrapper::IsEntrypointSupported
if (std::find(supported_entrypoints.begin(),
supported_entrypoints.end(),
entrypoint) == supported_entrypoints.end()) {
- DVLOG(1) << "Unsupported entrypoint";
+ VLOG(1) << "Unsupported entrypoint";
return false;
-if (is_chromeos && current_cpu != "arm") {
+if ((is_chromeos || is_linux) && current_cpu != "arm") {
action("libva_generate_stubs") {
extra_header = "va_stub_header.fragment"
@@ -54,7 +54,7 @@ if (is_chromeos && current_cpu != "arm") {
}
return true;
@@ -408,8 +410,8 @@ bool VaapiWrapper::AreAttribsSupported_L
if (attribs[i].type != required_attribs[i].type ||
(attribs[i].value & required_attribs[i].value) !=
required_attribs[i].value) {
- DVLOG(1) << "Unsupported value " << required_attribs[i].value
- << " for attribute type " << required_attribs[i].type;
+ VLOG(1) << "Unsupported value " << required_attribs[i].value
+ << " for attribute type " << required_attribs[i].type;
return false;
}
-if (is_chromeos && use_v4lplugin) {
+if ((is_chromeos || is_linux) && use_v4lplugin) {
action("libv4l2_generate_stubs") {
extra_header = "v4l2_stub_header.fragment"
@@ -229,7 +229,7 @@ component("gpu") {
}
}
@@ -427,46 +427,7 @@
VAEntrypoint entrypoint,
std::vector<VAConfigAttrib>& required_attribs,
gfx::Size* resolution) {
- va_lock_->AssertAcquired();
- VAConfigID va_config_id;
- VAStatus va_res = vaCreateConfig(
- va_display_,
- va_profile,
- entrypoint,
- &required_attribs[0],
- required_attribs.size(),
- &va_config_id);
- VA_SUCCESS_OR_RETURN(va_res, "vaCreateConfig failed", false);
-
- // Calls vaQuerySurfaceAttributes twice. The first time is to get the number
- // of attributes to prepare the space and the second time is to get all
- // attributes.
- unsigned int num_attribs;
- va_res = vaQuerySurfaceAttributes(
- va_display_, va_config_id, nullptr, &num_attribs);
- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false);
- if (!num_attribs)
- return false;
-
- std::vector<VASurfaceAttrib> attrib_list(
- base::checked_cast<size_t>(num_attribs));
-
- va_res = vaQuerySurfaceAttributes(
- va_display_, va_config_id, &attrib_list[0], &num_attribs);
- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false);
-
- resolution->SetSize(0, 0);
- for (const auto& attrib : attrib_list) {
- if (attrib.type == VASurfaceAttribMaxWidth)
- resolution->set_width(attrib.value.value.i);
- else if (attrib.type == VASurfaceAttribMaxHeight)
- resolution->set_height(attrib.value.value.i);
- }
- if (resolution->IsEmpty()) {
- LOG(ERROR) << "Codec resolution " << resolution->ToString()
- << " cannot be zero.";
- return false;
- }
+ resolution->SetSize(1920, 1088);
- if (is_chromeos) {
+ if (is_chromeos || is_linux) {
sources += [
"accelerated_video_decoder.h",
"h264_decoder.cc",
@@ -356,7 +356,7 @@ component("gpu") {
}
}
-if (is_win || is_android || is_chromeos) {
+if (is_win || is_android || is_chromeos || is_linux) {
test("video_decode_accelerator_unittest") {
sources = [
"video_accelerator_unittest_helpers.h",
@@ -425,7 +425,7 @@ if (is_win || is_android || is_chromeos) {
}
}
-if (is_chromeos || is_mac) {
+if (is_chromeos || is_linux || is_mac) {
test("video_encode_accelerator_unittest") {
deps = [
"//base",
diff --git a/media/gpu/gpu_video_decode_accelerator_factory_impl.cc b/media/gpu/gpu_video_decode_accelerator_factory_impl.cc
index 0a1a883..add2a8e 100644
--- a/media/gpu/gpu_video_decode_accelerator_factory_impl.cc
+++ b/media/gpu/gpu_video_decode_accelerator_factory_impl.cc
@@ -14,7 +14,7 @@
#include "media/gpu/dxva_video_decode_accelerator_win.h"
#elif defined(OS_MACOSX)
#include "media/gpu/vt_video_decode_accelerator_mac.h"
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "media/gpu/v4l2_device.h"
#include "media/gpu/v4l2_slice_video_decode_accelerator.h"
@@ -79,7 +79,7 @@
#if defined(OS_WIN)
capabilities.supported_profiles =
DXVAVideoDecodeAccelerator::GetSupportedProfiles();
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
VideoDecodeAccelerator::SupportedProfiles vda_profiles;
#if defined(USE_V4L2_CODEC)
vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles();
@@ -126,11 +126,11 @@ GpuVideoDecodeAcceleratorFactoryImpl::CreateVDA(
#if defined(OS_WIN)
&GpuVideoDecodeAcceleratorFactoryImpl::CreateDXVAVDA,
#endif
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
&GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2VDA,
&GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2SVDA,
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
&GpuVideoDecodeAcceleratorFactoryImpl::CreateVaapiVDA,
#endif
#if defined(OS_MACOSX)
@@ -169,7 +169,7 @@
}
#endif
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
std::unique_ptr<VideoDecodeAccelerator>
GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2VDA(
const gpu::GpuDriverBugWorkarounds& workarounds,
@@ -199,7 +199,7 @@
}
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
std::unique_ptr<VideoDecodeAccelerator>
GpuVideoDecodeAcceleratorFactoryImpl::CreateVaapiVDA(
const gpu::GpuDriverBugWorkarounds& workarounds,
diff --git a/media/gpu/gpu_video_decode_accelerator_factory_impl.h b/media/gpu/gpu_video_decode_accelerator_factory_impl.h
index a005a1c..5974972 100644
--- a/media/gpu/gpu_video_decode_accelerator_factory_impl.h
+++ b/media/gpu/gpu_video_decode_accelerator_factory_impl.h
@@ -93,7 +93,7 @@
const gpu::GpuDriverBugWorkarounds& workarounds,
const gpu::GpuPreferences& gpu_preferences) const;
#endif
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
std::unique_ptr<VideoDecodeAccelerator> CreateV4L2VDA(
const gpu::GpuDriverBugWorkarounds& workarounds,
const gpu::GpuPreferences& gpu_preferences) const;
@@ -101,7 +101,7 @@
const gpu::GpuDriverBugWorkarounds& workarounds,
const gpu::GpuPreferences& gpu_preferences) const;
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
std::unique_ptr<VideoDecodeAccelerator> CreateVaapiVDA(
const gpu::GpuDriverBugWorkarounds& workarounds,
const gpu::GpuPreferences& gpu_preferences) const;
diff --git a/media/gpu/ipc/service/BUILD.gn b/media/gpu/ipc/service/BUILD.gn
index 16d6922..78a4b94 100644
--- a/media/gpu/ipc/service/BUILD.gn
+++ b/media/gpu/ipc/service/BUILD.gn
@@ -37,7 +37,7 @@ source_set("service") {
"//third_party/mesa:mesa_headers",
]
- if (is_chromeos && current_cpu != "arm") {
+ if ((is_chromeos || is_linux) && current_cpu != "arm") {
configs += [ "//third_party/libva:libva_config" ]
}
diff --git a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
index bffc7fb..09dd0ef 100644
--- a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
+++ b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc
@@ -25,7 +25,7 @@
#include "media/gpu/ipc/common/media_messages.h"
#include "ui/gfx/geometry/size.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(ARCH_CPU_X86_FAMILY)
#include "media/gpu/vaapi_jpeg_decode_accelerator.h"
#endif
@@ -381,7 +381,7 @@
std::unique_ptr<JpegDecodeAccelerator> GpuJpegDecodeAccelerator::CreateV4L2JDA(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
std::unique_ptr<JpegDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device =
V4L2Device::Create(V4L2Device::kJpegDecoder);
if (device)
@@ -394,7 +394,7 @@
std::unique_ptr<JpegDecodeAccelerator> GpuJpegDecodeAccelerator::CreateVaapiJDA(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
std::unique_ptr<JpegDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
decoder.reset(new VaapiJpegDecodeAccelerator(io_task_runner));
#endif
return decoder;
diff --git a/media/gpu/ipc/service/gpu_video_decode_accelerator.cc b/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
index 44f8a12..014a752 100644
--- a/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
+++ b/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
@@ -58,7 +58,7 @@ static bool MakeDecoderContextCurrent(
return true;
}
Index: dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc
===================================================================
--- dev.wily.orig/content/common/gpu/media/vaapi_video_decode_accelerator.cc
+++ dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc
@@ -269,17 +269,17 @@ bool VaapiVideoDecodeAccelerator::Initia
base::AutoLock auto_lock(lock_);
DCHECK_EQ(state_, kUninitialized);
- DVLOG(2) << "Initializing VAVDA, profile: " << profile;
+ VLOG(1) << "Initializing VAVDA, profile: " << profile;
#if defined(USE_X11)
if (gfx::GetGLImplementation() != gfx::kGLImplementationDesktopGL) {
- DVLOG(1) << "HW video decode acceleration not available without "
+ VLOG(1) << "HW video decode acceleration not available without "
"DesktopGL (GLX).";
return false;
}
#elif defined(USE_OZONE)
if (gfx::GetGLImplementation() != gfx::kGLImplementationEGLGLES2) {
- DVLOG(1) << "HW video decode acceleration not available without "
+ VLOG(1) << "HW video decode acceleration not available without "
<< "EGLGLES2.";
return false;
}
@@ -289,7 +289,7 @@ bool VaapiVideoDecodeAccelerator::Initia
VaapiWrapper::kDecode, profile, base::Bind(&ReportToUMA, VAAPI_ERROR));
if (!vaapi_wrapper_.get()) {
- DVLOG(1) << "Failed initializing VAAPI for profile " << profile;
+ VLOG(1) << "Failed initializing VAAPI for profile " << profile;
return false;
}
@@ -302,7 +302,7 @@ bool VaapiVideoDecodeAccelerator::Initia
vp8_accelerator_.reset(new VaapiVP8Accelerator(this, vaapi_wrapper_.get()));
decoder_.reset(new VP8Decoder(vp8_accelerator_.get()));
} else {
- DLOG(ERROR) << "Unsupported profile " << profile;
+ VLOG(1) << "Unsupported profile " << profile;
return false;
}
Index: dev.wily/content/gpu/gpu_main.cc
===================================================================
--- dev.wily.orig/content/gpu/gpu_main.cc
+++ dev.wily/content/gpu/gpu_main.cc
@@ -66,7 +66,7 @@
#include "content/common/sandbox_mac.h"
-#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
+#if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
static bool BindImage(const base::WeakPtr<gpu::GpuCommandBufferStub>& stub,
uint32_t client_texture_id,
uint32_t texture_target,
@@ -170,7 +170,7 @@ GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator(
get_gl_context_cb_ = base::Bind(&GetGLContext, stub_->AsWeakPtr());
make_context_current_cb_ =
base::Bind(&MakeDecoderContextCurrent, stub_->AsWeakPtr());
-#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
+#if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
bind_image_cb_ = base::Bind(&BindImage, stub_->AsWeakPtr());
#endif
get_gles2_decoder_cb_ = base::Bind(&GetGLES2Decoder, stub_->AsWeakPtr());
diff --git a/media/gpu/ipc/service/gpu_video_encode_accelerator.cc b/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
index 62a8539..6367661 100644
--- a/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
+++ b/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
@@ -24,7 +24,7 @@
#include "media/gpu/gpu_video_accelerator_util.h"
#include "media/gpu/ipc/common/media_messages.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "media/gpu/v4l2_video_encode_accelerator.h"
#endif
@@ -196,10 +196,10 @@ std::vector<GpuVideoEncodeAccelerator::CreateVEAFp>
GpuVideoEncodeAccelerator::CreateVEAFps(
const gpu::GpuPreferences& gpu_preferences) {
std::vector<GpuVideoEncodeAccelerator::CreateVEAFp> create_vea_fps;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateV4L2VEA);
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
#include "content/common/gpu/media/vaapi_wrapper.h"
if (!gpu_preferences.disable_vaapi_accelerated_video_encode)
create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVaapiVEA);
#endif
@@ -227,7 +227,7 @@ int GpuMain(const MainFunctionParams& pa
GetGpuInfoFromCommandLine(gpu_info, command_line);
gpu_info.in_process_gpu = false;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
VaapiWrapper::PreSandboxInitialization();
#endif
Index: dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc
===================================================================
--- dev.wily.orig/content/common/gpu/client/command_buffer_proxy_impl.cc
+++ dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc
@@ -561,8 +561,10 @@ bool CommandBufferProxyImpl::ProduceFron
scoped_ptr<media::VideoDecodeAccelerator>
CommandBufferProxyImpl::CreateVideoDecoder() {
+ TRACE_EVENT0("gpu", "CommandBufferProxyImpl::CreateVideoDecoder");
if (!channel_)
return scoped_ptr<media::VideoDecodeAccelerator>();
+ VLOG(1) << "About to create GpuVideoDecodeAcceleratorHost.";
return scoped_ptr<media::VideoDecodeAccelerator>(
new GpuVideoDecodeAcceleratorHost(channel_, this));
@@ -213,7 +213,7 @@ GpuVideoEncodeAccelerator::CreateVEAFps(
return create_vea_fps;
}
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
// static
std::unique_ptr<media::VideoEncodeAccelerator>
GpuVideoEncodeAccelerator::CreateV4L2VEA() {
@@ -225,7 +225,7 @@ GpuVideoEncodeAccelerator::CreateV4L2VEA() {
}
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
// static
std::unique_ptr<media::VideoEncodeAccelerator>
GpuVideoEncodeAccelerator::CreateVaapiVEA() {
diff --git a/media/gpu/ipc/service/gpu_video_encode_accelerator.h b/media/gpu/ipc/service/gpu_video_encode_accelerator.h
index cfe44d2..29da8b8 100644
--- a/media/gpu/ipc/service/gpu_video_encode_accelerator.h
+++ b/media/gpu/ipc/service/gpu_video_encode_accelerator.h
@@ -80,10 +80,10 @@
// platform.
static std::vector<CreateVEAFp> CreateVEAFps(
const gpu::GpuPreferences& gpu_preferences);
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
static std::unique_ptr<VideoEncodeAccelerator> CreateV4L2VEA();
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
static std::unique_ptr<VideoEncodeAccelerator> CreateVaapiVEA();
#endif
#if defined(OS_ANDROID) && defined(ENABLE_WEBRTC)
diff --git a/media/gpu/jpeg_decode_accelerator_unittest.cc b/media/gpu/jpeg_decode_accelerator_unittest.cc
index 5c68851..796ca54 100644
--- a/media/gpu/jpeg_decode_accelerator_unittest.cc
+++ b/media/gpu/jpeg_decode_accelerator_unittest.cc
@@ -31,7 +31,7 @@
#include "third_party/libyuv/include/libyuv.h"
#include "ui/gfx/codec/jpeg_codec.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "media/gpu/v4l2_device.h"
#include "media/gpu/v4l2_jpeg_decode_accelerator.h"
@@ -135,10 +135,10 @@ JpegClient::JpegClient(const std::vector<TestImageFile*>& test_image_files,
JpegClient::~JpegClient() {}
void JpegClient::CreateJpegDecoder() {
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
decoder_.reset(
new VaapiJpegDecodeAccelerator(base::ThreadTaskRunnerHandle::Get()));
-#elif defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#elif (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device =
V4L2Device::Create(V4L2Device::kJpegDecoder);
if (!device.get()) {
@@ -575,7 +575,7 @@ int main(int argc, char** argv) {
continue;
LOG(FATAL) << "Unexpected switch: " << it->first << ":" << it->second;
}
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
media::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/media/gpu/video_decode_accelerator_unittest.cc b/media/gpu/video_decode_accelerator_unittest.cc
index f9f2711..936cd6d 100644
--- a/media/gpu/video_decode_accelerator_unittest.cc
+++ b/media/gpu/video_decode_accelerator_unittest.cc
@@ -61,7 +61,7 @@
#if defined(OS_WIN)
#include "base/win/windows_version.h"
#include "media/gpu/dxva_video_decode_accelerator_win.h"
-#elif defined(OS_CHROMEOS)
+#elif defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "media/gpu/v4l2_device.h"
#include "media/gpu/v4l2_slice_video_decode_accelerator.h"
@@ -1732,7 +1732,7 @@ int main(int argc, char** argv) {
ui::OzonePlatform::InitializeForUI();
#endif
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
media::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc
index b8b4dd9..07ddff5 100644
--- a/media/gpu/video_encode_accelerator_unittest.cc
+++ b/media/gpu/video_encode_accelerator_unittest.cc
@@ -48,7 +48,7 @@
#include "media/video/video_encode_accelerator.h"
#include "testing/gtest/include/gtest/gtest.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(ARCH_CPU_ARMEL) || (defined(USE_OZONE) && defined(USE_V4L2_CODEC))
#include "media/gpu/v4l2_video_encode_accelerator.h"
#endif
@@ -1063,8 +1063,8 @@
std::unique_ptr<VideoEncodeAccelerator> VEAClient::CreateV4L2VEA() {
std::unique_ptr<VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && (defined(ARCH_CPU_ARMEL) || \
- (defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && (defined(ARCH_CPU_ARMEL) || \
+ (defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
if (device)
encoder.reset(new V4L2VideoEncodeAccelerator(device));
@@ -1074,7 +1074,7 @@
std::unique_ptr<VideoEncodeAccelerator> VEAClient::CreateVaapiVEA() {
std::unique_ptr<VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
encoder.reset(new VaapiVideoEncodeAccelerator());
#endif
return encoder;
@@ -1812,7 +1812,7 @@ int main(int argc, char** argv) {
LOG(FATAL) << "--measure_latency requires --run_at_fps enabled to work.";
}
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
media::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/media/media.gyp b/media/media.gyp
index a8a370e..9a92e5f 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -752,7 +752,7 @@
],
}],
# For VaapiVideoEncodeAccelerator.
- ['target_arch != "arm" and chromeos == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', {
'sources': [
'filters/h264_bitstream_buffer.cc',
'filters/h264_bitstream_buffer.h',
@@ -1330,7 +1330,7 @@
'cdm/cdm_adapter_unittest.cc',
],
}],
- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', {
'sources': [
'filters/h264_bitstream_buffer_unittest.cc',
],
@@ -2098,7 +2098,7 @@
},
],
}],
- ['chromeos==1', {
+ ['chromeos==1 or desktop_linux==1', {
'targets': [
{
'target_name': 'jpeg_decode_accelerator_unittest',
@@ -2125,7 +2125,7 @@
}
]
}],
- ['chromeos==1 or OS=="mac"', {
+ ['chromeos==1 or desktop_linux==1 or OS=="mac"', {
'targets': [
{
'target_name': 'video_encode_accelerator_unittest',
@@ -2171,7 +2171,7 @@
}
]
}],
- ['chromeos==1 or OS=="win" or OS=="android"', {
+ ['chromeos==1 or desktop_linux==1 or OS=="win" or OS=="android"', {
'targets': [
{
# GN: //media/gpu:video_decode_accelerator_unittest
@@ -2264,7 +2264,7 @@
],
}],
- ['chromeos==1 and target_arch != "arm"', {
+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', {
'targets': [
{
'target_name': 'vaapi_jpeg_decoder_unittest',
diff --git a/media/media_gpu.gypi b/media/media_gpu.gypi
index 70c1398..810ac32 100644
--- a/media/media_gpu.gypi
+++ b/media/media_gpu.gypi
@@ -125,7 +125,7 @@
'gpu/android_video_encode_accelerator.h',
],
}],
- ['use_v4lplugin==1 and chromeos==1', {
+ ['use_v4lplugin==1 and (chromeos==1 or desktop_linux==1)', {
'direct_dependent_settings': {
'defines': [
'USE_LIBV4L2'
@@ -174,7 +174,7 @@
},
],
}],
- ['chromeos==1', {
+ ['chromeos==1 or desktop_linux==1', {
'sources': [
'gpu/accelerated_video_decoder.h',
'gpu/h264_decoder.cc',
@@ -191,7 +191,7 @@
'gpu/vp9_picture.h',
],
}],
- ['chromeos==1 and use_v4l2_codec==1', {
+ ['(chromeos==1 or desktop_linux==1) and use_v4l2_codec==1', {
'direct_dependent_settings': {
'defines': [
'USE_V4L2_CODEC'
@@ -230,7 +230,7 @@
'gpu/tegra_v4l2_device.h',
],
}],
- ['target_arch != "arm" and chromeos == 1', {
+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux==1)', {
'dependencies': [
'../media/media.gyp:media',
'../third_party/libyuv/libyuv.gyp:libyuv',
--
2.9.3

View File

@@ -17,6 +17,9 @@
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. /etc/profile
oe_setup_addon browser.chromium
# make sure we use "own" gtk/pango/nss/etc
export LD_LIBRARY_PATH=/storage/.kodi/addons/browser.chromium/lib
@@ -27,7 +30,20 @@ export GDK_PIXBUF_MODULE_FILE=/storage/.kodi/addons/browser.chromium/config/pixb
# font rendering in gtk widgets is brokeen with nvidia blob. use our Xdefaults
export XENVIRONMENT=/storage/.kodi/addons/browser.chromium/config/Xdefaults
# start unclutter
if [ "$HIDE_CURSOR" == "true" ]
then
unclutter &
UNCLUTTER_PID=$!
fi
# start chromium
LD_PRELOAD=/usr/lib/libGL.so /storage/.kodi/addons/browser.chromium/bin/chromium.bin \
--user-data-dir=/storage/.kodi/userdata/addon_data/browser.chromium/profile \
--test-type $@
# kill unclutter
if [ "$HIDE_CURSOR" == "true" ]
then
kill $UNCLUTTER_PID
fi

View File

@@ -10,6 +10,7 @@
<string id="1025">Default Homepage</string>
<string id="1026">Use Custom Audio Device</string>
<string id="1027">Audio Device</string>
<string id="1028">Hide Cursor</string>
<string id="1030">Chromium Actions</string>
<string id="1031">Install libwidevinecdm.so (Netflix Support)</string>
<string id="1032">Install libpepflashplayer.so (Flash Player Support)</string>

View File

@@ -10,6 +10,7 @@
<setting id="HOMEPAGE" type="text" label="1025" default="https://libreelec.tv" />
<setting id="USE_CUST_AUDIODEVICE" type="bool" label="1026" default="false" />
<setting id="CUST_AUDIODEVICE_STR" type="text" label="1027" visible="eq(-1,true)" subsetting="true" default="" />
<setting id="HIDE_CURSOR" type="bool" label="1028" default="false" />
</category>
<category label="1001">
<setting label="1030" type="lsep"/>

View File

@@ -0,0 +1,2 @@
7.0.100
- Initial add-on

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -0,0 +1,76 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="sapphire"
PKG_VERSION="6.6"
PKG_REV="100"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="https://libreelec.tv"
PKG_URL="http://www.rtr.ca/sapphire_remote/$PKG_NAME-$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain linux bash"
PKG_PRIORITY="optional"
PKG_SECTION="driver.remote"
PKG_SHORTDESC="A Linux driver to add support for sapphire remotes"
PKG_LONGDESC="A Linux driver to add support for sapphire remotes"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Sapphire Remote Driver"
PKG_ADDON_TYPE="xbmc.service"
PKG_ADDON_REPOVERSION="8.0"
if [ -f $SYSROOT_PREFIX/usr/include/linux/input-event-codes.h ]; then
INPUT_H="$SYSROOT_PREFIX/usr/include/linux/input-event-codes.h"
else
INPUT_H="$SYSROOT_PREFIX/usr/include/linux/input.h"
fi
make_target() {
KVER=$(kernel_version) KDIR=$(kernel_path) INPUT_H=$INPUT_H make
}
post_make_target() {
sed -i -e 's|modprobe sapphire|insmod /storage/.kodi/addons/driver.remote.sapphire/lib/sapphire.ko|' \
-e 's|/etc/sapphire.keymap|/storage/.kodi/userdata/addon_data/driver.remote.sapphire/sapphire.keymap|' \
-e 's|/usr/local/bin/sapphire_keymap.sh|/storage/.kodi/addons/driver.remote.sapphire/bin/sapphire_keymap.sh|' \
-e 's|\&\& /usr/local/bin/sapphire_keymap.sh|\&\& /storage/.kodi/addons/driver.remote.sapphire/bin/sapphire_keymap.sh /storage/.kodi/userdata/addon_data/driver.remote.sapphire/sapphire.keymap|' \
sapphire_startup.sh
sed -i -e 's|\#\!/bin/bash|\#\!/storage/.kodi/addons/driver.remote.sapphire/bin/bash|' \
sapphire_startup.sh sapphire_keymap.sh
}
makeinstall_target() {
:
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib/
cp $PKG_BUILD/*.ko $ADDON_BUILD/$PKG_ADDON_ID/lib
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/etc
cp $PKG_BUILD/keymap.default $ADDON_BUILD/$PKG_ADDON_ID/etc
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/
cp $PKG_BUILD/sapphire_startup.sh $ADDON_BUILD/$PKG_ADDON_ID/bin
cp $PKG_BUILD/sapphire_keymap.sh $ADDON_BUILD/$PKG_ADDON_ID/bin
# bash
cp $(get_build_dir bash)/.install_pkg/usr/bin/bash $ADDON_BUILD/$PKG_ADDON_ID/bin
}

View File

@@ -0,0 +1,29 @@
diff -Naur a/Makefile b/Makefile
--- a/Makefile 2016-04-24 18:28:49.000000000 -0700
+++ b/Makefile 2016-07-09 13:39:17.008211023 -0700
@@ -8,14 +8,14 @@
BLACKLIST=/etc/modprobe.d/blacklist-$(CONFLICTS).conf
KEYMAP_SCRIPT=sapphire_keymap.sh
EXTRACT_KEYDEFS=extract_keydefs.sh
-INPUT_H=$(shell [ -e /usr/include/linux/input-event-codes.h ] && echo /usr/include/linux/input-event-codes.h || echo /usr/include/linux/input.h)
+INPUT_H ?= $(shell [ -e /usr/include/linux/input-event-codes.h ] && echo /usr/include/linux/input-event-codes.h || echo /usr/include/linux/input.h)
## MODPARMS is not used any more, but we have to nuke old copies to prevent issues:
MODPARMS=/etc/modprobe.d/$(MODNAME).conf
CWD = $(shell pwd -P)
KVER ?= $(shell uname -r)
-KDIR = /lib/modules/$(KVER)
+KDIR ?= /lib/modules/$(KVER)
obj-m += $(MODNAME).o
#EXTRA_CFLAGS += -Werror
@@ -31,7 +31,7 @@
@exit 1
kmod:
- $(MAKE) -C $(KDIR)/build M=$(CWD) modules
+ $(MAKE) -C $(KDIR) M=$(CWD) modules
$(MODNAME).ko: $(MODSOURCE) $(MODNAME).h
$(MAKE) kmod

View File

@@ -0,0 +1,25 @@
#!/bin/sh
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. /etc/profile
oe_setup_addon driver.remote.sapphire
if [ ! -f $ADDON_HOME/sapphire.keymap ]; then
cp $ADDON_DIR/etc/keymap.default $ADDON_HOME/sapphire.keymap
fi

View File

@@ -0,0 +1,18 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################

View File

@@ -0,0 +1,13 @@
[Unit]
Description=Sapphire remote start script
Before=kodi.service
[Service]
Type=oneshot
Environment=HOME=/storage
ExecStartPre=/storage/.kodi/addons/driver.remote.sapphire/bin/sapphire-config
ExecStart=/storage/.kodi/addons/driver.remote.sapphire/bin/sapphire_startup.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

View File

@@ -1,3 +1,9 @@
7.0.103
- automatically update driver to latest version on first install
show driver version in addon settings
allow update for aarch64 architecture
german translation
7.0.102
- system wait-for-online preference is now respected

View File

@@ -18,7 +18,7 @@
PKG_NAME="sundtek-mediatv"
PKG_VERSION="7.0"
PKG_REV="102"
PKG_REV="103"
PKG_ARCH="any"
PKG_LICENSE="nonfree"
PKG_SITE="http://support.sundtek.com/"
@@ -27,7 +27,7 @@ PKG_DEPENDS_TARGET=""
PKG_PRIORITY="optional"
PKG_SECTION="driver/dvb"
PKG_SHORTDESC="Sundtek MediaTV: a Linux driver to add support for SUNDTEK USB DVB devices"
PKG_LONGDESC="Install this to add support for SundTek USB DVB devices."
PKG_LONGDESC="Install this to add support for Sundtek USB DVB devices."
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Sundtek MediaTV"

View File

@@ -36,8 +36,17 @@ SUNDTEK_ADDON_SETTINGS="$SUNDTEK_ADDON_HOME/settings.xml"
mkdir -p $SUNDTEK_ADDON_HOME
# remove the entry
BUILD_DATE="#"
sed -i "s|\(id=\"BUILD_DATE\" .* values=\)\"[^\"]*\"|\1\"$BUILD_DATE\"|" $SUNDTEK_ADDON_DIR/resources/settings.xml
if [ ! -f "$SUNDTEK_ADDON_HOME/sundtek.conf" ]; then
cp $SUNDTEK_ADDON_DIR/config/* $SUNDTEK_ADDON_HOME/
# update driver on first run
echo "update driver" >/tmp/ppp
systemd-run $SUNDTEK_ADDON_DIR/bin/sundtek-update-driver.sh
exit 0 # will be started later
else
# in case of missing entries in addon home's sundtek.conf
entry_set="$(grep use_hwpidfilter $SUNDTEK_ADDON_HOME/sundtek.conf 2>/dev/null)"
@@ -244,4 +253,8 @@ if [ -z "$(pidof mediasrv)" ]; then
fi
fi
logger -t Sundtek "### Sundtek ready ###"
# change build date in addon settings
BUILD_DATE=$(mediasrv --build 2>&1)
sed -i "s|\(id=\"BUILD_DATE\" .* values=\)\"[^\"]*\"|\1\"$BUILD_DATE\"|" $SUNDTEK_ADDON_DIR/resources/settings.xml
logger -t Sundtek "### Sundtek ready ($BUILD_DATE) ###"

View File

@@ -36,6 +36,10 @@ systemctl stop driver.dvb.sundtek-mediatv
killall -9 mediaclient &>/dev/null
killall -9 mediasrv &>/dev/null
# remove the entry
BUILD_DATE="#"
sed -i "s|\(id=\"BUILD_DATE\" .* values=\)\"[^\"]*\"|\1\"$BUILD_DATE\"|" $SUNDTEK_ADDON_DIR/resources/settings.xml
# exit on errors
set -e
@@ -47,7 +51,7 @@ mkdir tmp
cd tmp
logger -t Sundtek "### Starting updating driver ###"
kodi-send -a "Notification(Sundtek, Starting updating driver, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
kodi-send -a "Notification(Sundtek, Starting updating driver, 3000, $SUNDTEK_ADDON_DIR/icon.png)"
wget -O ../version.used http://sundtek.de/media/latest.phtml
if [ $? -ne 0 ]; then
@@ -72,7 +76,7 @@ else
fi
logger -t Sundtek "### Downloading driver archive for $ARCH ###"
kodi-send -a "Notification(Sundtek, Downloading driver archive for $ARCH, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
kodi-send -a "Notification(Sundtek, Downloading driver archive for $ARCH, 3000, $SUNDTEK_ADDON_DIR/icon.png)"
wget -O installer.tar.gz $INSTALLER_URL
if [ $? -ne 0 ]; then
logger -t Sundtek "### Archive damaged ###"
@@ -83,7 +87,7 @@ if [ $? -ne 0 ]; then
fi
logger -t Sundtek "### Extracting archive ###"
kodi-send -a "Notification(Sundtek, Extracting archive, 2000, $SUNDTEK_ADDON_DIR/icon.png)"
kodi-send -a "Notification(Sundtek, Extracting archive, 3000, $SUNDTEK_ADDON_DIR/icon.png)"
tar -xzf installer.tar.gz
if [ $? -ne 0 ]; then
logger -t Sundtek "### Archive damaged ###"

View File

@@ -24,11 +24,12 @@
<string id="9000">Tuner settings</string>
<string id="9005">Enable modifying settings</string>
<string id="9010">Refresh tuners... (press me)</string>
<string id="9010"><![CDATA[ >>> Refresh tuners <<< ]]></string>
<string id="9020"> IR protocol</string>
<string id="9030"> keymap filename</string>
<string id="3000">Driver</string>
<string id="3005">Driver version</string>
<string id="3020">Check for new driver version at boot</string>
<string id="3010">Update from web... (press me)</string>
<string id="3010"><![CDATA[ >>> Update driver now <<< ]]></string>
</strings>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<string id="1000">Allgemein</string>
<string id="1014">Verzögerung bevor Treiber gestartet wird [Sek.]</string>
<string id="1015">Skript welches vom Treiber-Stack gestartet werden soll</string>
<string id="1030">Hardware PID Filter einschalten</string>
<string id="1035">Fernbedienung unterstützen</string>
<string id="1040">Niedrigste Adapter Nummer (/dev/dvb/adapterX/)</string>
<string id="1050">Suspend / Resume des Treibers zulassen</string>
<string id="2000">Netzwerksupport</string>
<string id="2005">Netzwerkserver aktivieren</string>
<string id="2010">Mit Netzwerk-Tunern verbinden</string>
<string id="2020">Server 1 IP Adresse</string>
<string id="2021"> # Tuner ID</string>
<string id="2030">Server 2 IP Adresse</string>
<string id="2031"> # Tuner ID</string>
<string id="2040">Server 3 IP Adresse</string>
<string id="2041"> # Tuner ID</string>
<string id="2050">Server 4 IP Adresse</string>
<string id="2051"> # Tuner ID</string>
<string id="2060">Server 5 IP Adresse</string>
<string id="2061"> # Tuner ID</string>
<string id="9000">Geräte Einstellungen</string>
<string id="9005">Geräte-Einstellung ändern</string>
<string id="9010"><![CDATA[ >>> Tuner-Liste aktualisieren <<< ]]></string>
<string id="9020"> IR Protokoll</string>
<string id="9030"> Keymap Datei</string>
<string id="3000">Treiber</string>
<string id="3005">Treiber-Version</string>
<string id="3020">Bei Neustart auf neue Treiber-Version prüfen</string>
<string id="3010"><![CDATA[ >>> Treiber jetzt aktualisieren <<< ]]></string>
</strings>

View File

@@ -31,6 +31,7 @@
</category>
<category label="3000">
<setting type="sep" />
<setting id="BUILD_DATE" type="enum" label="3005" values="#" />
<setting id="CHECK_BOOT" type="bool" label="3020" default="false" />
<setting label="3010" option="close" type="action" id="update_driver" action="RunScript($CWD/resources/actions.py, update_driver)" />
</category>

View File

@@ -0,0 +1,11 @@
7.0.104
- update moonlight-common-c to support GFE 3.2
7.0.103
- update Moonlight to 2.2.2
7.0.102
- update Moonlight to 2.2.1
7.0.101
- initial addon

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -0,0 +1,78 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="moonlight"
PKG_VERSION="391de3f"
PKG_VERSION_NUMBER="2.2.2"
PKG_REV="104"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/dead/script.moonlight"
PKG_URL="https://github.com/dead/script.moonlight/archive/$PKG_VERSION.tar.gz"
PKG_SOURCE_DIR="script.moonlight-$PKG_VERSION*"
PKG_DEPENDS_TARGET="toolchain moonlight-embedded"
PKG_PRIORITY="optional"
PKG_SECTION="script"
PKG_SHORTDESC="Moonlight: implementation of NVIDIA's GameStream protocol"
PKG_LONGDESC="Moonlight ($PKG_VERSION_NUMBER): allows you to stream your collection of games from your PC (with NVIDIA Gamestream) to your device and play them remotely"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Moonlight"
PKG_ADDON_TYPE="xbmc.service.pluginsource"
PKG_ADDON_PROVIDES="executable"
PKG_ADDON_REPOVERSION="7.0"
make_target() {
:
}
makeinstall_target() {
:
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID
cp -PR $ROOT/$PKG_BUILD/script.moonlight/* $ADDON_BUILD/$PKG_ADDON_ID
# let's use our addon.xml instead
rm $ADDON_BUILD/$PKG_ADDON_ID/addon.xml
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/moonlight $ADDON_BUILD/$PKG_ADDON_ID/bin
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libgamestream/libgamestream.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libgamestream/libmoonlight-common.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
if [ "$KODIPLAYER_DRIVER" = "bcm2835-driver" ]; then
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-pi.so $ADDON_BUILD/$PKG_ADDON_ID/lib
elif [ "$KODIPLAYER_DRIVER" = "libfslvpuwrap" ]; then
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-imx.so $ADDON_BUILD/$PKG_ADDON_ID/lib
elif [ "$KODIPLAYER_DRIVER" = "libamcodec" ]; then
cp -P $(get_build_dir moonlight-embedded)/.$TARGET_NAME/libmoonlight-aml.so $ADDON_BUILD/$PKG_ADDON_ID/lib
fi
cp -P $(get_build_dir libevdev)/.install_pkg/usr/lib/libevdev.so* $ADDON_BUILD/$PKG_ADDON_ID/lib
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/etc
cp -P $(get_build_dir moonlight-embedded)/moonlight.conf $ADDON_BUILD/$PKG_ADDON_ID/etc
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/share/moonlight
cp -PR $(get_build_dir moonlight-embedded)/mappings $ADDON_BUILD/$PKG_ADDON_ID/share/moonlight
}

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="script.config.vdr"
PKG_VERSION="1.1.2"
PKG_VERSION="1.1.3"
PKG_REV="101"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@@ -24,7 +24,7 @@ PKG_ADDON_PROJECTS="RPi RPi2"
PKG_LICENSE="OSS"
PKG_SITE="https://github.com/patrikolausson/dispmanx_vnc"
PKG_URL="https://github.com/patrikolausson/dispmanx_vnc/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain libvncserver bcm2835-bootloader libconfig"
PKG_DEPENDS_TARGET="toolchain libvncserver bcm2835-bootloader bcm2835-driver libconfig libressl"
PKG_PRIORITY="optional"
PKG_SECTION="service/system"
PKG_SHORTDESC="VNC Server for Raspberry Pi"

View File

@@ -1,3 +1,31 @@
7.0.110
- Update to docker 1.12.5
- Adjust the systemd service file
7.0.109
- Update to docker 1.12.3
7.0.108
- Update to docker 1.12.2
7.0.107
- Update to docker 1.12.1
7.0.106
- Include missing docker-proxy
7.0.105
- Update to docker 1.12.0
- Update to golang 1.6.3
- Use overlay2 driver (new installs only)
- Remove docker-containerd-ctr
7.0.104
- Update to docker 1.11.2
7.0.103
- Allow using kodi notifications based on Docker events API
7.0.102
- Update to docker 1.11.1

View File

@@ -17,8 +17,8 @@
################################################################################
PKG_NAME="docker"
PKG_VERSION="1.11.1"
PKG_REV="102"
PKG_VERSION="1.12.5"
PKG_REV="110"
PKG_ARCH="any"
PKG_ADDON_PROJECTS="Generic RPi RPi2"
PKG_LICENSE="ASL"
@@ -82,7 +82,9 @@ configure_target() {
make_target() {
mkdir -p bin
$GOLANG build -v -o bin/docker -a -tags "$DOCKER_BUILDTAGS" -ldflags "$LDFLAGS" ./docker
$GOLANG build -v -o bin/docker -a -tags "$DOCKER_BUILDTAGS" -ldflags "$LDFLAGS" ./cmd/docker
$GOLANG build -v -o bin/dockerd -a -tags "$DOCKER_BUILDTAGS" -ldflags "$LDFLAGS" ./cmd/dockerd
$GOLANG build -v -o bin/docker-proxy -a -ldflags "$LDFLAGS" ./vendor/src/github.com/docker/libnetwork/cmd/proxy
}
makeinstall_target() {
@@ -92,11 +94,12 @@ makeinstall_target() {
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -P $ROOT/$PKG_BUILD/bin/docker $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -P $ROOT/$PKG_BUILD/bin/dockerd $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -P $ROOT/$PKG_BUILD/bin/docker-proxy $ADDON_BUILD/$PKG_ADDON_ID/bin
# containerd
cp -P $(get_build_dir containerd)/bin/containerd $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-containerd
cp -P $(get_build_dir containerd)/bin/containerd-shim $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-containerd-shim
cp -P $(get_build_dir containerd)/bin/ctr $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-containerd-ctr
# runc
cp -P $(get_build_dir runc)/bin/runc $ADDON_BUILD/$PKG_ADDON_ID/bin/docker-runc

View File

@@ -1,19 +1,31 @@
# Created with
# find . -name "*.go" -print | xargs sed -i 's/\/etc\/docker/\/storage\/.kodi\/userdata\/addon_data\/service.system.docker\/config/g'
diff -Naur a/docker/daemon_unix.go b/docker/daemon_unix.go
--- a/docker/daemon_unix.go 2016-04-25 20:35:31.000000000 -0700
+++ b/docker/daemon_unix.go 2016-05-02 12:19:20.461479163 -0700
@@ -16,7 +16,7 @@
"github.com/docker/docker/pkg/system"
diff -Naur a/cmd/dockerd/daemon_solaris.go b/cmd/dockerd/daemon_solaris.go
--- a/cmd/dockerd/daemon_solaris.go 2016-06-17 13:28:45.000000000 -0700
+++ b/cmd/dockerd/daemon_solaris.go 2016-06-23 10:53:28.544141675 -0700
@@ -39,7 +39,7 @@
}
func getDaemonConfDir() string {
- return "/etc/docker"
+ return "/storage/.kodi/userdata/addon_data/service.system.docker/config"
}
// setupConfigReloadTrap configures the USR2 signal to reload the configuration.
diff -Naur a/cmd/dockerd/daemon_unix.go b/cmd/dockerd/daemon_unix.go
--- a/cmd/dockerd/daemon_unix.go 2016-06-17 13:28:45.000000000 -0700
+++ b/cmd/dockerd/daemon_unix.go 2016-06-23 10:53:28.542141655 -0700
@@ -18,7 +18,7 @@
"github.com/docker/libnetwork/portallocator"
)
-const defaultDaemonConfigFile = "/etc/docker/daemon.json"
+const defaultDaemonConfigFile = "/storage/.kodi/userdata/addon_data/service.system.docker/config/daemon.json"
func setPlatformServerConfig(serverConfig *apiserver.Config, daemonCfg *daemon.Config) *apiserver.Config {
serverConfig.EnableCors = daemonCfg.EnableCors
@@ -49,7 +49,7 @@
// currentUserIsOwner checks whether the current user is the owner of the given
// file.
@@ -44,7 +44,7 @@
}
func getDaemonConfDir() string {
@@ -23,9 +35,9 @@ diff -Naur a/docker/daemon_unix.go b/docker/daemon_unix.go
// setupConfigReloadTrap configures the USR2 signal to reload the configuration.
diff -Naur a/integration-cli/docker_cli_authz_unix_test.go b/integration-cli/docker_cli_authz_unix_test.go
--- a/integration-cli/docker_cli_authz_unix_test.go 2016-04-25 20:35:31.000000000 -0700
+++ b/integration-cli/docker_cli_authz_unix_test.go 2016-05-02 12:19:20.291477565 -0700
@@ -134,10 +134,10 @@
--- a/integration-cli/docker_cli_authz_unix_test.go 2016-06-17 13:28:45.000000000 -0700
+++ b/integration-cli/docker_cli_authz_unix_test.go 2016-06-23 10:53:28.339139631 -0700
@@ -142,10 +142,10 @@
w.Write(b)
})
@@ -38,7 +50,7 @@ diff -Naur a/integration-cli/docker_cli_authz_unix_test.go b/integration-cli/doc
err = ioutil.WriteFile(fileName, []byte(s.server.URL), 0644)
c.Assert(err, checker.IsNil)
}
@@ -186,7 +186,7 @@
@@ -194,7 +194,7 @@
s.server.Close()
@@ -48,9 +60,9 @@ diff -Naur a/integration-cli/docker_cli_authz_unix_test.go b/integration-cli/doc
}
diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_cli_daemon_test.go
--- a/integration-cli/docker_cli_daemon_test.go 2016-04-25 20:35:31.000000000 -0700
+++ b/integration-cli/docker_cli_daemon_test.go 2016-05-02 12:19:20.356478174 -0700
@@ -512,13 +512,13 @@
--- a/integration-cli/docker_cli_daemon_test.go 2016-06-17 13:28:45.000000000 -0700
+++ b/integration-cli/docker_cli_daemon_test.go 2016-06-23 10:53:28.411140349 -0700
@@ -553,13 +553,13 @@
func (s *DockerDaemonSuite) TestDaemonKeyGeneration(c *check.C) {
// TODO: skip or update for Windows daemon
@@ -66,7 +78,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
if err != nil {
c.Fatalf("Error opening key file")
}
@@ -531,7 +531,7 @@
@@ -572,7 +572,7 @@
func (s *DockerDaemonSuite) TestDaemonKeyMigration(c *check.C) {
// TODO: skip or update for Windows daemon
@@ -75,7 +87,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
k1, err := libtrust.GenerateECP256PrivateKey()
if err != nil {
c.Fatalf("Error generating private key: %s", err)
@@ -548,7 +548,7 @@
@@ -589,7 +589,7 @@
}
s.d.Stop()
@@ -84,7 +96,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
if err != nil {
c.Fatalf("Error opening key file")
}
@@ -1296,7 +1296,7 @@
@@ -1337,7 +1337,7 @@
Y string `json:"y"`
}
@@ -93,7 +105,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
if err := s.d.Start(); err != nil {
c.Fatalf("Failed to start daemon: %v", err)
}
@@ -1306,7 +1306,7 @@
@@ -1347,7 +1347,7 @@
}
config := &Config{}
@@ -102,7 +114,7 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
if err != nil {
c.Fatalf("Error reading key.json file: %s", err)
}
@@ -1326,11 +1326,11 @@
@@ -1367,11 +1367,11 @@
}
// write back
@@ -117,9 +129,9 @@ diff -Naur a/integration-cli/docker_cli_daemon_test.go b/integration-cli/docker_
if err := s.d.Start(); err == nil {
c.Fatalf("It should not be successful to start daemon with wrong key: %v", err)
diff -Naur a/integration-cli/docker_cli_external_graphdriver_unix_test.go b/integration-cli/docker_cli_external_graphdriver_unix_test.go
--- a/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-04-25 20:35:31.000000000 -0700
+++ b/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-05-02 12:19:20.382478419 -0700
@@ -306,10 +306,10 @@
--- a/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-06-17 13:28:45.000000000 -0700
+++ b/integration-cli/docker_cli_external_graphdriver_unix_test.go 2016-06-23 10:53:28.444140678 -0700
@@ -321,10 +321,10 @@
respond(w, &graphDriverResponse{Size: size})
})
@@ -133,7 +145,7 @@ diff -Naur a/integration-cli/docker_cli_external_graphdriver_unix_test.go b/inte
err = ioutil.WriteFile(specFile, b, 0644)
c.Assert(err, check.IsNil, check.Commentf("error writing to %s", specFile))
}
@@ -318,8 +318,8 @@
@@ -333,8 +333,8 @@
s.server.Close()
s.jserver.Close()
@@ -144,41 +156,11 @@ diff -Naur a/integration-cli/docker_cli_external_graphdriver_unix_test.go b/inte
}
func (s *DockerExternalGraphdriverSuite) TestExternalGraphDriver(c *check.C) {
diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go
--- a/integration-cli/docker_cli_network_unix_test.go 2016-04-25 20:35:31.000000000 -0700
+++ b/integration-cli/docker_cli_network_unix_test.go 2016-05-02 12:19:20.380478400 -0700
@@ -200,14 +200,14 @@
}
})
- err := os.MkdirAll("/etc/docker/plugins", 0755)
+ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755)
c.Assert(err, checker.IsNil)
- fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", netDrv)
+ fileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", netDrv)
err = ioutil.WriteFile(fileName, []byte(url), 0644)
c.Assert(err, checker.IsNil)
- ipamFileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", ipamDrv)
+ ipamFileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", ipamDrv)
err = ioutil.WriteFile(ipamFileName, []byte(url), 0644)
c.Assert(err, checker.IsNil)
}
@@ -219,7 +219,7 @@
s.server.Close()
- err := os.RemoveAll("/etc/docker/plugins")
+ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins")
c.Assert(err, checker.IsNil)
}
diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integration-cli/docker_cli_start_volume_driver_unix_test.go
--- a/integration-cli/docker_cli_start_volume_driver_unix_test.go 2016-04-25 20:35:31.000000000 -0700
+++ b/integration-cli/docker_cli_start_volume_driver_unix_test.go 2016-05-02 12:19:20.387478466 -0700
@@ -216,17 +216,17 @@
send(w, nil)
diff -Naur a/integration-cli/docker_cli_external_volume_driver_unix_test.go b/integration-cli/docker_cli_external_volume_driver_unix_test.go
--- a/integration-cli/docker_cli_external_volume_driver_unix_test.go 2016-06-17 13:28:45.000000000 -0700
+++ b/integration-cli/docker_cli_external_volume_driver_unix_test.go 2016-06-23 10:53:28.435140588 -0700
@@ -239,17 +239,17 @@
send(w, `{"Capabilities": { "Scope": "global" }}`)
})
- err := os.MkdirAll("/etc/docker/plugins", 0755)
@@ -198,7 +180,7 @@ diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integ
c.Assert(err, checker.IsNil)
}
@@ -311,7 +311,7 @@
@@ -334,7 +334,7 @@
// Make sure a request to use a down driver doesn't block other requests
func (s *DockerExternalVolumeSuite) TestExternalVolumeDriverLookupNotBlocked(c *check.C) {
@@ -207,7 +189,7 @@ diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integ
err := ioutil.WriteFile(specPath, []byte("tcp://127.0.0.7:9999"), 0644)
c.Assert(err, check.IsNil)
defer os.RemoveAll(specPath)
@@ -350,7 +350,7 @@
@@ -373,7 +373,7 @@
err := s.d.StartWithBusybox()
c.Assert(err, checker.IsNil)
@@ -216,9 +198,39 @@ diff -Naur a/integration-cli/docker_cli_start_volume_driver_unix_test.go b/integ
os.RemoveAll(specPath)
defer os.RemoveAll(specPath)
diff -Naur a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go
--- a/integration-cli/docker_cli_network_unix_test.go 2016-06-17 13:28:45.000000000 -0700
+++ b/integration-cli/docker_cli_network_unix_test.go 2016-06-23 10:53:28.441140648 -0700
@@ -201,14 +201,14 @@
}
})
- err := os.MkdirAll("/etc/docker/plugins", 0755)
+ err := os.MkdirAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins", 0755)
c.Assert(err, checker.IsNil)
- fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", netDrv)
+ fileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", netDrv)
err = ioutil.WriteFile(fileName, []byte(url), 0644)
c.Assert(err, checker.IsNil)
- ipamFileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", ipamDrv)
+ ipamFileName := fmt.Sprintf("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins/%s.spec", ipamDrv)
err = ioutil.WriteFile(ipamFileName, []byte(url), 0644)
c.Assert(err, checker.IsNil)
}
@@ -220,7 +220,7 @@
s.server.Close()
- err := os.RemoveAll("/etc/docker/plugins")
+ err := os.RemoveAll("/storage/.kodi/userdata/addon_data/service.system.docker/config/plugins")
c.Assert(err, checker.IsNil)
}
diff -Naur a/pkg/plugins/discovery.go b/pkg/plugins/discovery.go
--- a/pkg/plugins/discovery.go 2016-04-25 20:35:31.000000000 -0700
+++ b/pkg/plugins/discovery.go 2016-05-02 12:19:20.540479907 -0700
--- a/pkg/plugins/discovery.go 2016-06-17 13:28:45.000000000 -0700
+++ b/pkg/plugins/discovery.go 2016-06-23 10:53:28.636142593 -0700
@@ -16,7 +16,7 @@
// ErrNotFound plugin not found
ErrNotFound = errors.New("plugin not found")
@@ -229,8 +241,8 @@ diff -Naur a/pkg/plugins/discovery.go b/pkg/plugins/discovery.go
// localRegistry defines a registry that is local (using unix socket).
diff -Naur a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go
--- a/pkg/plugins/plugins.go 2016-04-25 20:35:31.000000000 -0700
+++ b/pkg/plugins/plugins.go 2016-05-02 12:19:20.539479898 -0700
--- a/pkg/plugins/plugins.go 2016-06-17 13:28:45.000000000 -0700
+++ b/pkg/plugins/plugins.go 2016-06-23 10:53:28.636142593 -0700
@@ -4,7 +4,7 @@
// Docker discovers plugins by looking for them in the plugin directory whenever
// a user or container tries to use one by name. UNIX domain socket files must
@@ -241,8 +253,8 @@ diff -Naur a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go
// its name if it exists.
//
diff -Naur a/registry/config_unix.go b/registry/config_unix.go
--- a/registry/config_unix.go 2016-04-25 20:35:31.000000000 -0700
+++ b/registry/config_unix.go 2016-05-02 12:19:20.502479549 -0700
--- a/registry/config_unix.go 2016-06-17 13:28:45.000000000 -0700
+++ b/registry/config_unix.go 2016-06-23 10:53:28.594142174 -0700
@@ -4,7 +4,7 @@
var (
@@ -253,8 +265,8 @@ diff -Naur a/registry/config_unix.go b/registry/config_unix.go
// cleanPath is used to ensure that a directory name is valid on the target
diff -Naur a/registry/endpoint_v1.go b/registry/endpoint_v1.go
--- a/registry/endpoint_v1.go 2016-04-25 20:35:31.000000000 -0700
+++ b/registry/endpoint_v1.go 2016-05-02 12:19:20.501479540 -0700
--- a/registry/endpoint_v1.go 2016-06-17 13:28:45.000000000 -0700
+++ b/registry/endpoint_v1.go 2016-06-23 10:53:28.593142164 -0700
@@ -49,7 +49,7 @@
if endpoint.IsSecure {
// If registry is secure and HTTPS failed, show user the error and tell them about `--insecure-registry`

View File

@@ -1,2 +1,2 @@
DOCKER_DAEMON_OPTS="--graph=/storage/.kodi/userdata/addon_data/service.system.docker/docker"
DOCKER_STORAGE_OPTS="--storage-driver=overlay"
DOCKER_STORAGE_OPTS="--storage-driver=overlay2"

View File

@@ -19,22 +19,254 @@
import os
import subprocess
import sys
import threading
import time
import xbmc
import xbmcaddon
import xbmcgui
sys.path.append('/usr/share/kodi/addons/service.libreelec.settings')
import oe
__author__ = 'lrusak'
__addon__ = xbmcaddon.Addon()
__path__ = __addon__.getAddonInfo('path')
__service__ = __path__ + '/systemd/' + __addon__.getAddonInfo('id') + '.service'
__servicename__ = __addon__.getAddonInfo('id') + '.service'
__socket__ = __path__ + '/systemd/' + __addon__.getAddonInfo('id') + '.socket'
__socketname__ = __addon__.getAddonInfo('id') + '.socket'
sys.path.append(__path__ + '/lib')
import dockermon
# docker events for api 1.23 (docker version 1.11.x)
# https://docs.docker.com/engine/reference/api/docker_remote_api_v1.23/#monitor-docker-s-events
docker_events = {
'container': {
'string': 30030,
'event': {
'attach': {
'string': 30031,
'enabled': '',
},
'commit': {
'string': 30032,
'enabled': '',
},
'copy': {
'string': 30033,
'enabled': '',
},
'create': {
'string': 30034,
'enabled': '',
},
'destroy': {
'string': 30035,
'enabled': '',
},
'die': {
'string': 30036,
'enabled': '',
},
'exec_create': {
'string': 30037,
'enabled': '',
},
'exec_start': {
'string': 30038,
'enabled': '',
},
'export': {
'string': 30039,
'enabled': '',
},
'kill': {
'string': 30040,
'enabled': True,
},
'oom': {
'string': 30041,
'enabled': True,
},
'pause': {
'string': 30042,
'enabled': '',
},
'rename': {
'string': 30043,
'enabled': '',
},
'resize': {
'string': 30044,
'enabled': '',
},
'restart': {
'string': 30045,
'enabled': '',
},
'start': {
'string': 30046,
'enabled': True,
},
'stop': {
'string': 30047,
'enabled': True,
},
'top': {
'string': 30048,
'enabled': '',
},
'unpause': {
'string': 30049,
'enabled': '',
},
'update': {
'string': 30050,
'enabled': '',
},
},
},
'image': {
'string': 30060,
'event': {
'delete': {
'string': 30061,
'enabled': '',
},
'import': {
'string': 30062,
'enabled': '',
},
'pull': {
'string': 30063,
'enabled': True,
},
'push': {
'string': 30064,
'enabled': '',
},
'tag': {
'string': 30065,
'enabled': '',
},
'untag': {
'string': 30066,
'enabled': '',
},
},
},
'volume': {
'string': 30070,
'event': {
'create': {
'string': 30071,
'enabled': '',
},
'mount': {
'string': 30072,
'enabled': '',
},
'unmount': {
'string': 30073,
'enabled': '',
},
'destroy': {
'string': 30074,
'enabled': '',
},
},
},
'network': {
'string': 30080,
'event': {
'create': {
'string': 30081,
'enabled': '',
},
'connect': {
'string': 30082,
'enabled': '',
},
'disconnect': {
'string': 30083,
'enabled': '',
},
'destroy': {
'string': 30084,
'enabled': '',
},
},
},
}
def print_notification(json_data):
event_string = docker_events[json_data['Type']]['event'][json_data['Action']]['string']
if __addon__.getSetting('notifications') is '0': # default
if docker_events[json_data['Type']]['event'][json_data['Action']]['enabled']:
try:
message = unicode(' '.join([__addon__.getLocalizedString(30010),
json_data['Actor']['Attributes']['name'],
'|',
__addon__.getLocalizedString(30012),
__addon__.getLocalizedString(event_string)]))
except KeyError as e:
message = unicode(' '.join([__addon__.getLocalizedString(30011),
json_data['Type'],
'|',
__addon__.getLocalizedString(30012),
__addon__.getLocalizedString(event_string)]))
elif __addon__.getSetting('notifications') is '1': # all
try:
message = unicode(' '.join([__addon__.getLocalizedString(30010),
json_data['Actor']['Attributes']['name'],
'|',
__addon__.getLocalizedString(30012),
__addon__.getLocalizedString(event_string)]))
except KeyError as e:
message = unicode(' '.join([__addon__.getLocalizedString(30011),
json_data['Type'],
'|',
__addon__.getLocalizedString(30012),
__addon__.getLocalizedString(event_string)]))
elif __addon__.getSetting('notifications') is '2': # none
pass
elif __addon__.getSetting('notifications') is '3': # custom
if __addon__.getSetting(json_data['Action']) == 'true':
try:
message = unicode(' '.join([__addon__.getLocalizedString(30010),
json_data['Actor']['Attributes']['name'],
'|',
__addon__.getLocalizedString(30012),
__addon__.getLocalizedString(event_string)]))
except KeyError as e:
message = unicode(' '.join([__addon__.getLocalizedString(30011),
json_data['Type'],
'|',
__addon__.getLocalizedString(30012),
__addon__.getLocalizedString(event_string)]))
dialog = xbmcgui.Dialog()
try:
if message is not '':
length = int(__addon__.getSetting('notification_length')) * 1000
dialog.notification('Docker', message, '/storage/.kodi/addons/service.system.docker/icon.png', length)
xbmc.log('## service.system.docker ## ' + unicode(message))
except NameError as e:
pass
class dockermonThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self._is_running = True
def run(self):
while self._is_running:
dockermon.watch(print_notification)
def stop(self):
self._is_running = False
class Main(object):
@@ -42,52 +274,10 @@ class Main(object):
monitor = DockerMonitor(self)
if not Docker().is_enabled():
Docker().enable()
Docker().start()
while not monitor.abortRequested():
if monitor.waitForAbort():
Docker().stop()
Docker().disable()
class Docker(object):
def enable(self):
self.execute('systemctl enable ' + __service__)
self.execute('systemctl enable ' + __socket__)
def disable(self):
self.execute('systemctl disable ' + __servicename__)
self.execute('systemctl disable ' + __socketname__)
def is_enabled(self):
if self.execute('systemctl is-enabled ' + __servicename__, get_result=1).strip('\n') == 'enabled':
return True
else:
return False
def start(self):
self.execute('systemctl start ' + __servicename__)
def stop(self):
self.execute('systemctl stop ' + __servicename__)
def is_active(self):
if self.execute('systemctl is-active ' + __servicename__, get_result=1).strip('\n') == 'active':
return True
else:
return False
def execute(self, command_line, get_result=0):
result = oe.execute(command_line, get_result=get_result)
if get_result:
return result
def restart(self):
if self.is_active():
self.stop()
self.start()
# we don't want to stop or disable docker while it's installed
pass
class DockerMonitor(xbmc.Monitor):
@@ -95,9 +285,11 @@ class DockerMonitor(xbmc.Monitor):
xbmc.Monitor.__init__(self)
def onSettingsChanged(self):
Docker().restart()
pass
if ( __name__ == "__main__" ):
dockermonThread().start()
Main()
del DockerMonitor
dockermonThread().stop()

View File

@@ -0,0 +1,153 @@
#!/usr/bin/env python
"""docker monitor using docker /events HTTP streaming API"""
"""https://github.com/CyberInt/dockermon"""
from contextlib import closing
from functools import partial
from socket import socket, AF_UNIX
from subprocess import Popen, PIPE
from sys import stdout, version_info
import json
import shlex
if version_info[:2] < (3, 0):
from httplib import OK as HTTP_OK
from urlparse import urlparse
else:
from http.client import OK as HTTP_OK
from urllib.parse import urlparse
__version__ = '0.2.2'
# buffer size must be 256 or lower otherwise events won't show in realtime
bufsize = 256
default_sock_url = 'ipc:///var/run/docker.sock'
class DockermonError(Exception):
pass
def read_http_header(sock):
"""Read HTTP header from socket, return header and rest of data."""
buf = []
hdr_end = '\r\n\r\n'
while True:
buf.append(sock.recv(bufsize).decode('utf-8'))
data = ''.join(buf)
i = data.find(hdr_end)
if i == -1:
continue
return data[:i], data[i + len(hdr_end):]
def header_status(header):
"""Parse HTTP status line, return status (int) and reason."""
status_line = header[:header.find('\r')]
# 'HTTP/1.1 200 OK' -> (200, 'OK')
fields = status_line.split(None, 2)
return int(fields[1]), fields[2]
def connect(url):
"""Connect to UNIX or TCP socket.
url can be either tcp://<host>:port or ipc://<path>
"""
url = urlparse(url)
if url.scheme == 'tcp':
sock = socket()
netloc = tuple(url.netloc.rsplit(':', 1))
hostname = socket.gethostname()
elif url.scheme == 'ipc':
sock = socket(AF_UNIX)
netloc = url.path
hostname = 'localhost'
else:
raise ValueError('unknown socket type: %s' % url.scheme)
sock.connect(netloc)
return sock, hostname
def watch(callback, url=default_sock_url):
"""Watch docker events. Will call callback with each new event (dict).
url can be either tcp://<host>:port or ipc://<path>
"""
sock, hostname = connect(url)
request = 'GET /events HTTP/1.1\nHost: %s\n\n' % hostname
request = request.encode('utf-8')
with closing(sock):
sock.sendall(request)
header, payload = read_http_header(sock)
status, reason = header_status(header)
if status != HTTP_OK:
raise DockermonError('bad HTTP status: %s %s' % (status, reason))
# Messages are \r\n<size in hex><JSON payload>\r\n
buf = [payload]
while True:
chunk = sock.recv(bufsize)
if not chunk:
raise EOFError('socket closed')
buf.append(chunk.decode('utf-8'))
data = ''.join(buf)
i = data.find('\r\n')
if i == -1:
continue
size = int(data[:i], 16)
start = i + 2 # Skip initial \r\n
if len(data) < start + size + 2:
continue
payload = data[start:start+size]
callback(json.loads(payload))
buf = [data[start+size+2:]] # Skip \r\n suffix
def print_callback(msg):
"""Print callback, prints message to stdout as JSON in one line."""
json.dump(msg, stdout)
stdout.write('\n')
stdout.flush()
def prog_callback(prog, msg):
"""Program callback, calls prog with message in stdin"""
pipe = Popen(prog, stdin=PIPE)
data = json.dumps(msg)
pipe.stdin.write(data.encode('utf-8'))
pipe.stdin.close()
if __name__ == '__main__':
from argparse import ArgumentParser
parser = ArgumentParser(description=__doc__)
parser.add_argument('--prog', default=None,
help='program to call (e.g. "jq --unbuffered .")')
parser.add_argument(
'--socket-url', default=default_sock_url,
help='socket url (ipc:///path/to/sock or tcp:///host:port)')
parser.add_argument(
'--version', help='print version and exit',
action='store_true', default=False)
args = parser.parse_args()
if args.version:
print('dockermon %s' % __version__)
raise SystemExit
if args.prog:
prog = shlex.split(args.prog)
callback = partial(prog_callback, prog)
else:
callback = print_callback
try:
watch(callback, args.socket_url)
except (KeyboardInterrupt, EOFError):
pass

View File

@@ -0,0 +1,197 @@
# Kodi Media Center language file
# Addon Name: docker
# Addon id: service.system.docker
msgid ""
msgstr ""
msgctxt "#30000"
msgid "Settings"
msgstr ""
msgctxt "#30001"
msgid "Notifications"
msgstr ""
msgctxt "#30002"
msgid "Default"
msgstr ""
msgctxt "#30003"
msgid "All"
msgstr ""
msgctxt "#30004"
msgid "Off"
msgstr ""
msgctxt "#30005"
msgid "Custom"
msgstr ""
msgctxt "#30006"
msgid "Notification Length (Seconds)"
msgstr ""
msgctxt "#30010"
msgid "Name:"
msgstr ""
msgctxt "#30011"
msgid "Type:"
msgstr ""
msgctxt "#30012"
msgid "Action:"
msgstr ""
msgctxt "#30030"
msgid "Container"
msgstr ""
msgctxt "#30031"
msgid "attach"
msgstr ""
msgctxt "#30032"
msgid "commit"
msgstr ""
msgctxt "#30033"
msgid "copy"
msgstr ""
msgctxt "#30034"
msgid "create"
msgstr ""
msgctxt "#30035"
msgid "destroy"
msgstr ""
msgctxt "#30036"
msgid "die"
msgstr ""
msgctxt "#30037"
msgid "exec_create"
msgstr ""
msgctxt "#30038"
msgid "exec_start"
msgstr ""
msgctxt "#30039"
msgid "export"
msgstr ""
msgctxt "#30040"
msgid "kill"
msgstr ""
msgctxt "#30041"
msgid "out of memory"
msgstr ""
msgctxt "#30042"
msgid "pause"
msgstr ""
msgctxt "#30043"
msgid "rename"
msgstr ""
msgctxt "#30044"
msgid "resize"
msgstr ""
msgctxt "#30045"
msgid "restart"
msgstr ""
msgctxt "#30046"
msgid "start"
msgstr ""
msgctxt "#30047"
msgid "stop"
msgstr ""
msgctxt "#30048"
msgid "top"
msgstr ""
msgctxt "#30049"
msgid "unpause"
msgstr ""
msgctxt "#30050"
msgid "update"
msgstr ""
msgctxt "#30060"
msgid "Image"
msgstr ""
msgctxt "#30061"
msgid "delete"
msgstr ""
msgctxt "#30062"
msgid "import"
msgstr ""
msgctxt "#30063"
msgid "pull"
msgstr ""
msgctxt "#30064"
msgid "push"
msgstr ""
msgctxt "#30065"
msgid "tag"
msgstr ""
msgctxt "#30066"
msgid "untag"
msgstr ""
msgctxt "#30070"
msgid "Volume"
msgstr ""
msgctxt "#30071"
msgid "create"
msgstr ""
msgctxt "#30072"
msgid "mount"
msgstr ""
msgctxt "#30073"
msgid "unmount"
msgstr ""
msgctxt "#30074"
msgid "destroy"
msgstr ""
msgctxt "#30080"
msgid "Network"
msgstr ""
msgctxt "#30081"
msgid "create"
msgstr ""
msgctxt "#30082"
msgid "connect"
msgstr ""
msgctxt "#30083"
msgid "disconnect"
msgstr ""
msgctxt "#30084"
msgid "destroy"
msgstr ""

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<category label="30000">
<setting label="30001" type="enum" id="notifications" default="0" lvalues="30002|30003|30004|30005"/>
<setting label="30034" type="bool" id="create" default="false" visible="eq(-1,3)" subsetting="true"/>
<setting label="30035" type="bool" id="destroy" default="false" visible="eq(-2,3)" subsetting="true"/>
<setting label="30036" type="bool" id="die" default="false" visible="eq(-3,3)" subsetting="true"/>
<setting label="30040" type="bool" id="kill" default="false" visible="eq(-4,3)" subsetting="true"/>
<setting label="30041" type="bool" id="oom" default="false" visible="eq(-5,3)" subsetting="true"/>
<setting label="30046" type="bool" id="start" default="false" visible="eq(-6,3)" subsetting="true"/>
<setting label="30047" type="bool" id="stop" default="false" visible="eq(-7,3)" subsetting="true"/>
<setting label="30006" type="slider" id="notification_length" default="5" visible="lt(-8,2) | gt(-8,2)" range="2,10" option="int" />
</category>
</settings>

View File

@@ -1,19 +1,24 @@
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket
After=network.target
[Service]
Type=notify
Environment=PATH=/bin:/sbin:/usr/bin:/usr/sbin:/storage/.kodi/addons/service.system.docker/bin
ExecStartPre=/storage/.kodi/addons/service.system.docker/bin/docker-config
EnvironmentFile=-/storage/.kodi/userdata/addon_data/service.system.docker/config/docker.conf
ExecStart=/storage/.kodi/addons/service.system.docker/bin/docker daemon -H fd:// $DOCKER_DAEMON_OPTS $DOCKER_STORAGE_OPTS
MountFlags=slave
ExecStart=/storage/.kodi/addons/service.system.docker/bin/dockerd --exec-opt native.cgroupdriver=systemd \
--group=root \
$DOCKER_DAEMON_OPTS \
$DOCKER_STORAGE_OPTS
ExecReload=/bin/kill -s HUP $MAINPID
TasksMax=8192
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
[Install]
WantedBy=multi-user.target

View File

@@ -1,13 +0,0 @@
[Unit]
Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=root
[Install]
WantedBy=sockets.target
Alias=docker.socket

View File

@@ -0,0 +1,14 @@
103
- Updated to version 3.0.8100
102
- Updated to version 3.0.6070
- Build for all architectures
- Refer to libsqlite3.so.0 instead of libsqlite3.so
101
- Updated to version 3.0.5985
- Removed mono build dependency
100
- Initial release

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -0,0 +1,62 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="emby"
PKG_VERSION="3.0.8100"
PKG_REV="103"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="http://emby.media"
PKG_URL="https://github.com/MediaBrowser/Emby/releases/download/$PKG_VERSION/Emby.Mono.zip"
PKG_DEPENDS_TARGET="toolchain imagemagick"
PKG_PRIORITY="optional"
PKG_SECTION="service"
PKG_SHORTDESC="Emby: a personal media server"
PKG_LONGDESC="Emby ($PKG_VERSION) brings your home videos, music, and photos together, automatically converting and streaming your media on-the-fly to any device"
PKG_MAINTAINER="Anton Voyl (awiouy)"
PKG_AUTORECONF="no"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Emby (beta)"
PKG_ADDON_TYPE="xbmc.service"
PKG_ADDON_REPOVERSION="7.0"
PKG_ADDON_REQUIRES="tools.mono:0.0.0"
unpack() {
mkdir -p $PKG_BUILD
}
make_target() {
: # nop
}
makeinstall_target() {
: # nop
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono
unzip -q $ROOT/$SOURCES/$PKG_NAME/$PKG_SOURCE_NAME \
-d $ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono
sed -i 's/libsqlite3.so/libsqlite3.so.0/g' \
$ADDON_BUILD/$PKG_ADDON_ID/Emby.Mono/System.Data.SQLite.dll.config
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib
cp -PR $(get_build_dir imagemagick)/.install_pkg/usr/lib/* $ADDON_BUILD/$PKG_ADDON_ID/lib/
}

View File

@@ -0,0 +1,27 @@
#!/bin/sh
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
. /etc/profile
oe_setup_addon service.emby
chmod +x $ADDON_DIR/bin/*
mkdir -p $ADDON_HOME
mono $ADDON_DIR/Emby.Mono/MediaBrowser.Server.Mono.exe -programdata $ADDON_HOME

View File

@@ -0,0 +1,35 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2016 Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
import subprocess
import xbmc
import xbmcaddon
class Monitor(xbmc.Monitor):
def __init__(self, *args, **kwargs):
xbmc.Monitor.__init__(self)
self.id = xbmcaddon.Addon().getAddonInfo('id')
def onSettingsChanged(self):
subprocess.call(['systemctl', 'restart', self.id])
if __name__ == "__main__":
Monitor().waitForAbort()

View File

@@ -0,0 +1,13 @@
[Unit]
Description=Emby - streaming server
Documentation=http://emby.media
After=network.target
Requires=network.target
[Service]
ExecStart=/bin/sh /storage/.kodi/addons/service.emby/bin/emby.start
Restart=always
[Install]
WantedBy=kodi.target

View File

@@ -1,3 +1,9 @@
7.0.103
- Update to version 85fcec3
7.0.102
- Update to version d2f4725
7.0.101
- Add protobuf/V4L2 support

View File

@@ -17,12 +17,12 @@
################################################################################
PKG_NAME="hyperion"
PKG_VERSION="f64b6eb"
PKG_REV="101"
PKG_VERSION="85fcec3"
PKG_REV="103"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/tvdzwan/hyperion"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain Python libusb qt protobuf"
PKG_URL="https://github.com/tvdzwan/hyperion/archive/$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain Python libusb qt protobuf rpi_ws281x"
PKG_SECTION="service"
PKG_SHORTDESC="Hyperion: an AmbiLight controller"
PKG_LONGDESC="Hyperion($PKG_VERSION) is an modern opensource AmbiLight implementation."
@@ -48,6 +48,10 @@ elif [ "$DISPLAYSERVER" = "x11" ]; then
X11_SUPPORT="-DENABLE_X11=1"
fi
pre_build_target() {
cp -a $(get_build_dir rpi_ws281x)/* $ROOT/$PKG_BUILD/dependencies/external/rpi_ws281x
}
configure_target() {
echo "" > ../cmake/FindGitVersion.cmake
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
@@ -59,7 +63,7 @@ configure_target() {
$DISPMANX_SUPPORT \
$FB_SUPPORT \
-DENABLE_OSX=0 \
-DENABLE_PROTOBUF=1 \
-DUSE_SYSTEM_PROTO_LIBS=ON \
-DENABLE_SPIDEV=1 \
-DENABLE_TINKERFORGE=0 \
-DENABLE_V4L2=1 \
@@ -92,7 +96,7 @@ addon() {
fi
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config
cp -P $PKG_BUILD/config/hyperion.config.json $ADDON_BUILD/$PKG_ADDON_ID/config/hyperion.config.json.sample
cp -P $PKG_BUILD/config/hyperion.config.json.example $ADDON_BUILD/$PKG_ADDON_ID/config/hyperion.config.json.sample
sed -i -e "s,/opt/hyperion/effects,/storage/.kodi/addons/service.hyperion/effects,g" \
$ADDON_BUILD/$PKG_ADDON_ID/config/hyperion.config.json.sample

View File

@@ -1,44 +0,0 @@
From 0ce04b692b7c3e4414c46402c389215f7b0aac48 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Mon, 6 Apr 2015 21:47:41 +0200
Subject: [PATCH] Use protobuf from pkg-config
---
dependencies/CMakeLists.txt | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/dependencies/CMakeLists.txt b/dependencies/CMakeLists.txt
index 17747bd..4406d01 100644
--- a/dependencies/CMakeLists.txt
+++ b/dependencies/CMakeLists.txt
@@ -5,25 +5,9 @@ add_subdirectory(build/serial)
add_subdirectory(build/tinkerforge)
if(ENABLE_PROTOBUF)
- set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared protobuf library")
- add_subdirectory(external/protobuf)
+ find_package(Protobuf REQUIRED)
+ include_directories(${PROTOBUF_INCLUDE_DIRS})
- if(CMAKE_CROSSCOMPILING)
- # when crosscompiling import the protoc executable targets from a file generated by a native build
- option(IMPORT_PROTOC "Protoc export file (protoc_export.cmake) from a native build" "IMPORT_PROTOC-FILE_NOT_FOUND")
- include(${IMPORT_PROTOC})
- else()
- # export the protoc compiler so it can be used when cross compiling
- export(TARGETS protoc_compiler FILE "${CMAKE_BINARY_DIR}/protoc_export.cmake")
- endif()
-
- # define the include for the protobuf library at the parent scope
- set(PROTOBUF_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/external/protobuf/src")
- set(PROTOBUF_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIRS} PARENT_SCOPE)
-
- # define the protoc executable at the parent scope
- get_property(PROTOBUF_PROTOC_EXECUTABLE TARGET protoc_compiler PROPERTY LOCATION)
- set(PROTOBUF_PROTOC_EXECUTABLE ${PROTOBUF_PROTOC_EXECUTABLE} PARENT_SCOPE)
message(STATUS "Using protobuf compiler: " ${PROTOBUF_PROTOC_EXECUTABLE})
#=============================================================================
--
2.3.4

View File

@@ -1,17 +0,0 @@
diff --git a/libsrc/leddevice/LedDevicePhilipsHue.cpp b/libsrc/leddevice/LedDevicePhilipsHue.cpp
index 332176a..81f421b 100755
--- a/libsrc/leddevice/LedDevicePhilipsHue.cpp
+++ b/libsrc/leddevice/LedDevicePhilipsHue.cpp
@@ -105,10 +105,10 @@ CiColor PhilipsHueLight::rgbToCiColor(float red, float green, float blue) {
// Convert to x,y space.
float cx = X / (X + Y + Z);
float cy = Y / (X + Y + Z);
- if (isnan(cx)) {
+ if (std::isnan(cx)) {
cx = 0.0f;
}
- if (isnan(cy)) {
+ if (std::isnan(cy)) {
cy = 0.0f;
}
// Brightness is simply Y in the XYZ space.

View File

@@ -1,2 +1,5 @@
7.0.100
101
- Upgrade to 2.0
100
- Initial addon

View File

@@ -17,32 +17,25 @@
################################################################################
PKG_NAME="inadyn"
PKG_VERSION="1.99.15"
PKG_REV="100"
PKG_VERSION="2.0"
PKG_REV="101"
PKG_ARCH="any"
PKG_LICENSE="GPLv2"
PKG_SITE="http://troglobit.com/inadyn.html"
PKG_URL="ftp://troglobit.com/$PKG_NAME/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain libressl"
PKG_PRIORITY="optional"
PKG_URL="https://github.com/troglobit/inadyn/archive/v$PKG_VERSION.tar.gz"
PKG_DEPENDS_TARGET="toolchain libconfuse libite libressl"
PKG_SECTION="service/system"
PKG_SHORTDESC="Inadyn, a small and simple DDNS client"
PKG_LONGDESC="Inadyn is a small and simple DDNS client with HTTPS support. It is commonly available in many GNU/Linux distributions, used in off-the-shelf routers and Internet gateways to automate the task of keeping your DNS record up to date with any IP address changes from your ISP. It can also be used in installations with redundant (backup) connections to the Internet."
PKG_MAINTAINER="Anton Voyl (awiouy at gmail.com)"
PKG_SHORTDESC="Inadyn: a small and simple Dynamic Domain Name System client"
PKG_LONGDESC="Inadyn ($PKG_VERSION) is a small and simple Dynamic Domain Name System (DDNS) client with HTTPS support. It is commonly available in many GNU/Linux distributions, used in off-the-shelf routers and Internet gateways to automate the task of keeping your DNS record up to date with any IP address changes from your ISP. It can also be used in installations with redundant (backup) connections to the Internet."
PKG_AUTORECONF="yes"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Inadyn"
PKG_ADDON_TYPE="xbmc.service"
PKG_ADDON_PROVIDES=""
PKG_MAINTAINER="Anton Voyl (awiouy)"
PKG_ADDON_REPOVERSION="7.0"
PKG_AUTORECONF="yes"
PKG_CONFIGURE_OPTS_TARGET="--enable-openssl" # --sysconfdir is ineffective
pre_configure_target() {
# inadyn fails to build in subdirs
cd $ROOT/$PKG_BUILD
rm -rf .$TARGET_NAME
}
PKG_CONFIGURE_OPTS_TARGET="--enable-openssl"
makeinstall_target() {
:
@@ -50,5 +43,5 @@ makeinstall_target() {
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
cp $PKG_BUILD/src/inadyn $ADDON_BUILD/$PKG_ADDON_ID/bin
cp $PKG_BUILD/.$TARGET_NAME/src/inadyn $ADDON_BUILD/$PKG_ADDON_ID/bin
}

View File

@@ -20,24 +20,23 @@
. /etc/profile
oe_setup_addon service.system.inadyn
config="$ADDON_HOME/inadyn.conf"
options="-b"
if [ "$inadyn_S" == "inadyn.conf" ]
then
if [ -f "$config" ] && [ -s "$config" ]
then
options="$options -F $config"
else
exit 0
fi
if [ "$inadyn_S" == "inadyn.conf" ]; then
config="$ADDON_HOME/inadyn.conf"
else
options="$options -S $inadyn_S -u $inadyn_u -p $inadyn_p -a $inadyn_a"
if [ "$inadyn_s" == "true" ]
then
options="$options -s"
fi
config="$ADDON_HOME/inadyn.temp"
if [ -z "$inadyn_a" -o -z "$inadyn_p" -o -z "$inadyn_u" ]; then
rm -fr "$config"
else
echo "\
provider $inadyn_S {
ssl = $inadyn_s
username = $inadyn_u
password = $inadyn_p
hostname = $inadyn_a
}" > "$config"
fi
fi
inadyn $options
if [ -f "$config" ]; then
inadyn -f "$config" -l info
fi

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<category label="30000">
<setting id="inadyn_S" label="30001" type="labelenum" values="inadyn.conf|default@dyndns.org|default@freedns.afraid.org|default@zoneedit.com|default@no-ip.com|default@easydns.com|default@tzo.com|dyndns@3322.org|default@dnsomatic.com|dyndns@he.net|default@tunnelbroker.net|default@dynsip.org|default@sitelutions.com|default@dnsexit.com|default@changeip.com|default@zerigo.com|default@dhis.org|ipv4@nsupdate.info|default@duckdns.org|default@loopia.com|default@duiadns.net" />
<setting id="inadyn_u" label="30002" type="text" visible="!eq(-1,0)" />
<setting id="inadyn_p" label="30003" type="text" visible="!eq(-2,0)" option="hidden" />
<setting id="inadyn_a" label="30004" type="text" visible="!eq(-3,0)" />
<setting id="inadyn_s" label="30005" type="bool" visible="!eq(-4,0)" default="true"/>
<setting id="inadyn_S" label="30001" type="select" default="inadyn.conf" values="inadyn.conf|default@changeip.com|default@ddnss.de|default@dhis.org|default@dnsexit.com|default@dnsomatic.com|default@domains.google.com|default@dtdns.com|default@duckdns.org|default@duiadns.net|default@dyndns.org|default@dynsip.org|default@dynv6.com|default@easydns.com|default@freedns.afraid.org|default@gira.de|default@ipv4.dynv6.com|default@loopia.com|default@no-ip.com|default@ovh.com|default@sitelutions.com|default@spdyn.de|default@strato.com|default@tunnelbroker.net|default@tzo.com|default@zerigo.com|default@zoneedit.com|dyndns@3322.org|dyndns@he.net|ipv4@nsupdate.info" />
<setting id="inadyn_u" label="30002" type="text" visible="!eq(-1,inadyn.conf)" />
<setting id="inadyn_p" label="30003" type="text" visible="!eq(-2,inadyn.conf)" option="hidden" />
<setting id="inadyn_a" label="30004" type="text" visible="!eq(-3,inadyn.conf)" />
<setting id="inadyn_s" label="30005" type="bool" visible="!eq(-4,inadyn.conf)" default="true"/>
</category>
</settings>

View File

@@ -0,0 +1,2 @@
7.0.100
- initial LibreELEC version

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,99 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="mpd"
PKG_VERSION="0.19.15"
PKG_REV="100"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="https://www.musicpd.org"
PKG_URL="http://www.musicpd.org/download/${PKG_NAME}/${PKG_VERSION%.*}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_DEPENDS_TARGET="toolchain boost glib ffmpeg libmad libogg flac faad2 curl alsa-lib yajl libid3tag lame"
PKG_PRIORITY="optional"
PKG_SECTION="service.multimedia"
PKG_SHORTDESC="Music Player Daemon (MPD): a free and open Music Player Server"
PKG_LONGDESC="Music Player Daemon ($PKG_VERSION) is a flexible and powerful server-side application for playing music"
PKG_AUTORECONF="yes"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Music Player Daemon (MPD)"
PKG_ADDON_TYPE="xbmc.service"
PKG_ADDON_PROVIDES=""
PKG_ADDON_REPOVERSION="7.0"
pre_configure_target() {
export LIBS="$LIBS -logg -lFLAC"
}
PKG_CONFIGURE_OPTS_TARGET="--enable-alsa \
--disable-roar \
--disable-ao \
--disable-audiofile \
--disable-bzip2 \
--disable-cdio-paranoia \
--enable-curl \
--disable-smbclient \
--disable-soup \
--disable-debug \
--disable-documentation \
--disable-ffado \
--enable-ffmpeg \
--disable-fluidsynth \
--disable-gme \
--enable-httpd-output \
--enable-id3 \
--disable-jack \
--disable-lastfm \
--disable-despotify \
--disable-soundcloud \
--enable-lame-encoder \
--disable-libwrap \
--disable-lsr \
--enable-mad \
--disable-mikmod\
--disable-mms \
--disable-modplug \
--disable-mpg123 \
--disable-mvp \
--disable-openal \
--disable-oss \
--disable-pipe-output \
--disable-pulse \
--disable-recorder-output \
--disable-sidplay \
--disable-shout \
--disable-sndfile \
--disable-solaris-output \
--disable-sqlite \
--disable-systemd-daemon \
--disable-test \
--disable-twolame-encoder \
--disable-zzip \
--with-zeroconf=no \
--disable-icu"
makeinstall_target() {
: # nop
}
addon() {
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
cp -P $PKG_BUILD/.$TARGET_NAME/src/mpd $ADDON_BUILD/$PKG_ADDON_ID/bin
}

View File

@@ -0,0 +1,41 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to the
# Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. /etc/profile
oe_setup_addon service.multimedia.mpd
mkdir -p $ADDON_HOME/config
mkdir -p $ADDON_HOME/log
mkdir -p $ADDON_HOME/playlists
mkdir -p $ADDON_HOME/music
touch $ADDON_HOME/log/mpd.log
touch $ADDON_HOME/mpd.db
touch $ADDON_HOME/state
chmod a+x $ADDON_DIR/bin/*
if [ ! -f "$ADDON_HOME/config/mpd.conf" ]; then
cp $ADDON_DIR/config/mpd.conf $ADDON_HOME/config/mpd.conf
fi
exec mpd --no-daemon $ADDON_HOME/config/mpd.conf > /dev/null 2>&1

View File

@@ -0,0 +1,453 @@
# An example configuration file for MPD
# See the mpd.conf man page for a more detailed description of each parameter.
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory "/storage/music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/mpd.db"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
log_file "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/log/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
pid_file "/var/run/mpd.pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
state_file "/storage/.kodi/userdata/addon_data/service.multimedia.mpd/state"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
#sticker_file "/storage/.mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
#user "mpd"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon.
#
# For network
#bind_to_address "any"
#
# And for Unix Socket
#bind_to_address "/storage/.mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port "6600"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
#log_level "default"
#
# If you have a problem with your MP3s ending abruptly it is recommended that
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
# point gapless MP3 playback can be enabled.
#
#gapless_mp3_playback "yes"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. Optionally, 'comment' can be added to this
# list.
#
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
###############################################################################
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#
#zeroconf_name "Music Player"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Input #######################################################################
#
#input {
# plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
#}
#
###############################################################################
###############################################################################
###############################################################################
#
# A BIG FAT WARNING
#
# This may block your xbmc audio. It might also play no audio at all,
# if streamsilence is enabled and you try to use the very same device.
#
###############################################################################
###############################################################################
# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# See <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs> for examples of
# other audio outputs.
#
# An example of an ALSA output:
#
##audio_output {
## type "alsa"
## name "ALSA Device"
### device "hw:0,0" # optional
#### format "44100:16:2" # optional
#### mixer_type "hardware" # optional
#### mixer_device "default" # optional
#### mixer_control "PCM" # optional
#### mixer_index "0" # optional
##}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
## device "/dev/dsp" # optional
## format "44100:16:2" # optional
## mixer_type "hardware" # optional
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoding "ogg" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## url "http://example.com" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
#}
#
# An example of a recorder output:
#
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
## type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
# quality "5.0" # do not define if bitrate is defined
# bitrate "320" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
# type "pulse"
# name "My Pulse Output"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
audio_output {
type "null"
name "My Null Output"
mixer_type "none" # optional
}
#
# This setting will change all decoded audio to be converted to the specified
# format before being passed to the audio outputs. By default, this setting is
# disabled.
#
#audio_output_format "44100:16:2"
#
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use. Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter "Fastest Sinc Interpolator"
#
###############################################################################
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album" or "track". See <http://www.replaygain.org>
# for more details. This setting is off by default.
#
#replaygain "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
#volume_normalization "no"
#
###############################################################################
# MPD Internal Buffering ######################################################
#
# This setting adjusts the size of internal decoded audio buffering. Changing
# this may have undesired effects. Don't change this if you don't know what you
# are doing.
#
#audio_buffer_size "2048"
#
# This setting controls the percentage of the buffer which is filled before
# beginning to play. Increasing this reduces the chance of audio file skipping,
# at the cost of increased time prior to audio playback.
#
#buffer_before_play "10%"
#
###############################################################################
# Resource Limitations ########################################################
#
# These settings are various limitations to prevent MPD from using too many
# resources. Generally, these settings should be minimized to prevent security
# risks, depending on the operating resources.
#
#connection_timeout "60"
#max_connections "10"
#max_playlist_length "16384"
#max_command_list_size "2048"
#max_output_buffer_size "8192"
#
###############################################################################
# Client TCP keep alive #######################################################
#
# For clients connected by TCP on supported platforms.
# Allows detection of dangling connections due to clients disappearing from
# the network without closing their connections.
#
# This is not usually necessary but can be useful in cases such as wifi connectected
# clients that go in and out of network range or turn off wifi without closing their
# connections. Combined with low max_connections this can soon cause clients to not
# be able to connect.
#
#
# Enable tcp keepalive on new client connections (default is "no")
#
#tcp_keep_alive "no"
#
# Time in seconds since the last communication on the connection and before
# the keepalive probing is started. (default is 7200 seconds)
#tcp_keep_alive_idle "7200"
#
# Interval in seconds between keepalive probes, once a probe started.
# (default is 75 seconds)
#tcp_keep_alive_interval "75"
#
# Number of failed probes before the connection is pronounced dead and
# the connection is closed. (default is 9 times)
#tcp_keep_alive_count "9"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
#filesystem_charset "UTF-8"
#
# This setting controls the encoding that ID3v1 tags should be converted from.
#
#id3v1_encoding "ISO-8859-1"
#
###############################################################################
# SIDPlay decoder #############################################################
#
# songlength_database:
# Location of your songlengths file, as distributed with the HVSC.
# The sidplay plugin checks this for matching MD5 fingerprints.
# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq
#
# default_songlength:
# This is the default playing time in seconds for songs not in the
# songlength database, or in case you're not using a database.
# A value of 0 means play indefinitely.
#
# filter:
# Turns the SID filter emulation on or off.
#
#decoder {
# plugin "sidplay"
# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt"
# default_songlength "120"
# filter "true"
#}
#
###############################################################################

View File

@@ -0,0 +1,19 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<string id="1000">General</string>
<string id="1011">Restart on suspend / resume</string>
</strings>

Some files were not shown because too many files have changed in this diff Show More