diff options
author | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2014-11-07 22:52:57 -0200 |
---|---|---|
committer | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2014-11-07 22:52:57 -0200 |
commit | 528cc57bbef43a36d49074b516def855de254388 (patch) | |
tree | cba6dcf999885fffb28a19a2b4172373ced13089 | |
parent | 9570050c577d06b8778691cb3be8f067e24f54c3 (diff) | |
parent | 8da2c1605c06abe0e9334cd6cc3b390538c0c1ac (diff) |
Merge branch 'master' of ssh://projects.parabola.nu:1863/~git/abslibre
9 files changed, 308 insertions, 10 deletions
diff --git a/libre/calibre/PKGBUILD b/libre/calibre/PKGBUILD index a950e82dd..9d467ef71 100644 --- a/libre/calibre/PKGBUILD +++ b/libre/calibre/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 121629 2014-10-31 14:46:38Z jelle $ +# $Id: PKGBUILD 122158 2014-11-07 12:54:59Z jelle $ # Maintainer (Arch): Jelle van der Waa <jelle@vdwaa.nl> # Maintainer (Arch): Daniel Wallace <danielwallace at gtmanfred dot com> # Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org> @@ -9,7 +9,7 @@ pkgname=calibre _pkgname=$pkgname-libre -pkgver=2.8.0 +pkgver=2.9.0 pkgrel=1.parabola1 pkgdesc="Ebook management application, without nonfree decompression engine for RAR archives" arch=('i686' 'x86_64' 'mips64el') @@ -19,7 +19,7 @@ depends=('python2-six' 'python2-dateutil' 'python2-cssutils' 'python2-cherrypy' 'python2-mechanize' 'podofo' 'libwmf' 'imagemagick' 'chmlib' 'python2-lxml' 'libusbx' 'python2-pillow' 'shared-mime-info' 'python2-dnspython' - 'python2-pyqt5' 'python2-psutil' 'icu' 'libmtp' + 'python2-pyqt5' 'python2-psutil' 'icu' 'libmtp' 'python2-dbus' 'python2-netifaces' 'python2-cssselect' 'python2-apsw' 'qt5-webkit' 'qt5-svg' 'python2-chardet' 'python2-html5lib') makedepends=('python2-pycountry' 'qt5-x11extras') @@ -32,8 +32,8 @@ install=$pkgname.install mksource=("http://download.$pkgname-ebook.com/${pkgver}/$pkgname-${pkgver}.tar.xz") source=("https://repo.parabolagnulinux.org/other/${_pkgname}/${_pkgname}-${pkgver}.tar.xz" 'libre.patch') -mkmd5sums=('49caead69597fc78d8311966e52a667a') -md5sums=('e488322c746270f3329d14a45f448611' +mkmd5sums=('06675c778a3f28f06ce982e86cb7aa80') +md5sums=('064f9185f6cea73315c48bd6296a08d2' 'ca0d5aec7495a0709be2d42f49067247') mksource(){ diff --git a/libre/xbmc/0001-CEC-fixed-don-t-try-to-stick-a-value-255-in-a-byte.patch b/libre/xbmc/0001-CEC-fixed-don-t-try-to-stick-a-value-255-in-a-byte.patch new file mode 100644 index 000000000..f2fc11b85 --- /dev/null +++ b/libre/xbmc/0001-CEC-fixed-don-t-try-to-stick-a-value-255-in-a-byte.patch @@ -0,0 +1,41 @@ +From 4037c9fd07fbec1873549e71e0b1c2833a5a87db Mon Sep 17 00:00:00 2001 +From: Lars Op den Kamp <lars@opdenkamp.eu> +Date: Mon, 27 Oct 2014 14:42:30 +0100 +Subject: [PATCH 1/8] [CEC] fixed: don't try to stick a value > 255 in a byte + +--- + system/peripherals.xml | 2 +- + xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/system/peripherals.xml b/system/peripherals.xml +index 57af5d1..5fcff7c 100644 +--- a/system/peripherals.xml ++++ b/system/peripherals.xml +@@ -30,7 +30,7 @@ + <setting key="device_type" type="int" value="1" configurable="0" /> + <setting key="wake_devices_advanced" type="string" value="" configurable="0" /> + <setting key="standby_devices_advanced" type="string" value="" configurable="0" /> +- <setting key="double_tap_timeout_ms" type="int" min="0" value="2000" configurable="0" /> ++ <setting key="double_tap_timeout_ms" type="int" min="0" value="300" configurable="0" /> + </peripheral> + + <peripheral vendor_product="2548:1001,2548:1002" bus="usb" name="Pulse-Eight CEC Adapter" mapTo="cec"> +diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp +index 9907ba2..1d068dc 100644 +--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp ++++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp +@@ -1347,8 +1347,8 @@ void CPeripheralCecAdapter::SetConfigurationFromSettings(void) + m_configuration.bPowerOffOnStandby = iStandbyAction == 13011 ? 1 : 0; + m_configuration.bShutdownOnStandby = iStandbyAction == 13005 ? 1 : 0; + +- // double tap prevention timeout in ms +- m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms"); ++ // double tap prevention timeout in ms. libCEC uses 50ms units for this in 2.2.0, so divide by 50 ++ m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms") / 50; + } + + void CPeripheralCecAdapter::ReadLogicalAddresses(const CStdString &strString, cec_logical_addresses &addresses) +-- +2.1.2 + diff --git a/libre/xbmc/0002-CEC-bump-libCEC-to-2.2.0.patch b/libre/xbmc/0002-CEC-bump-libCEC-to-2.2.0.patch new file mode 100644 index 000000000..e7aecd75e --- /dev/null +++ b/libre/xbmc/0002-CEC-bump-libCEC-to-2.2.0.patch @@ -0,0 +1,39 @@ +From 6cd70921650dda8864a844033e36f1bea55d034b Mon Sep 17 00:00:00 2001 +From: Lars Op den Kamp <lars@opdenkamp.eu> +Date: Mon, 27 Oct 2014 12:29:09 +0100 +Subject: [PATCH 2/8] [CEC] bump libCEC to 2.2.0 + +--- + project/BuildDependencies/scripts/libcec_d.txt | 2 +- + tools/depends/target/libcec/Makefile | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/project/BuildDependencies/scripts/libcec_d.txt b/project/BuildDependencies/scripts/libcec_d.txt +index a126c74..3d0265e 100644 +--- a/project/BuildDependencies/scripts/libcec_d.txt ++++ b/project/BuildDependencies/scripts/libcec_d.txt +@@ -1,3 +1,3 @@ + ; filename source of the file + +-libcec-2.1.4.zip http://mirrors.xbmc.org/build-deps/win32/ ++libcec-2.2.0-win32.zip http://mirrors.xbmc.org/build-deps/win32/ +diff --git a/tools/depends/target/libcec/Makefile b/tools/depends/target/libcec/Makefile +index 16fec1b..6c72240 100644 +--- a/tools/depends/target/libcec/Makefile ++++ b/tools/depends/target/libcec/Makefile +@@ -3,9 +3,9 @@ DEPS= ../../Makefile.include Makefile + + # lib name, version + LIBNAME=libcec +-VERSION=2.1.4 +-SOURCE=$(LIBNAME)-$(VERSION)-2 +-ARCHIVE=$(SOURCE).tar.gz ++VERSION=2.2.0 ++SOURCE=$(LIBNAME)-$(VERSION) ++ARCHIVE=$(SOURCE)-3.tar.gz + + # configuration settings + CONFIGURE=./configure --prefix=$(PREFIX) --disable-rpi \ +-- +2.1.2 + diff --git a/libre/xbmc/0003-CEC-prevent-bus-rescan-on-a-Pi-since-the-adapter-can.patch b/libre/xbmc/0003-CEC-prevent-bus-rescan-on-a-Pi-since-the-adapter-can.patch new file mode 100644 index 000000000..e8f583721 --- /dev/null +++ b/libre/xbmc/0003-CEC-prevent-bus-rescan-on-a-Pi-since-the-adapter-can.patch @@ -0,0 +1,26 @@ +From e59d7e028288464e6890141a830e4a83d4b9d065 Mon Sep 17 00:00:00 2001 +From: Lars Op den Kamp <lars@opdenkamp.eu> +Date: Mon, 27 Oct 2014 15:32:36 +0100 +Subject: [PATCH 3/8] [CEC] prevent bus rescan on a Pi, since the adapter + cannot be removed + +--- + xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp +index b02535a..4941ae6 100644 +--- a/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp ++++ b/xbmc/peripherals/bus/virtual/PeripheralBusCEC.cpp +@@ -101,6 +101,8 @@ bool CPeripheralBusCEC::PerformDeviceScan(PeripheralScanResults &results) + break; + case ADAPTERTYPE_RPI: + result.m_mappedBusType = PERIPHERAL_BUS_RPI; ++ /** the Pi's adapter cannot be removed, no need to rescan */ ++ m_bNeedsPolling = false; + break; + default: + break; +-- +2.1.2 + diff --git a/libre/xbmc/0004-CEC-fixed-don-t-return-garbage-from-CEC-related-app-.patch b/libre/xbmc/0004-CEC-fixed-don-t-return-garbage-from-CEC-related-app-.patch new file mode 100644 index 000000000..d4556ae29 --- /dev/null +++ b/libre/xbmc/0004-CEC-fixed-don-t-return-garbage-from-CEC-related-app-.patch @@ -0,0 +1,112 @@ +From 6544830d1a0b9810c2feb2fcb34df3f90b010d2f Mon Sep 17 00:00:00 2001 +From: Lars Op den Kamp <lars@opdenkamp.eu> +Date: Mon, 27 Oct 2014 21:01:00 +0100 +Subject: [PATCH 4/8] [CEC] fixed: don't return garbage from CEC related app + messenger methods see + https://github.com/xbmc/xbmc/commit/19d37944ca2a2ac2f3e71a40a94e9ea289d8f2db#commitcomment-8248480 + +--- + xbmc/Application.cpp | 14 ++++++++------ + xbmc/ApplicationMessenger.cpp | 20 +++++--------------- + xbmc/ApplicationMessenger.h | 4 ++-- + 3 files changed, 15 insertions(+), 23 deletions(-) + +diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp +index d5604dc..4d26183 100644 +--- a/xbmc/Application.cpp ++++ b/xbmc/Application.cpp +@@ -2351,16 +2351,18 @@ + + if (StringUtils::StartsWithNoCase(action.GetName(),"CECToggleState") || StringUtils::StartsWithNoCase(action.GetName(),"CECStandby")) + { +- bool ret = true; +- +- CLog::Log(LOGDEBUG, "%s: action %s [%d], toggling state of playing device", __FUNCTION__, action.GetName().c_str(), action.GetID()); + // do not wake up the screensaver right after switching off the playing device + if (StringUtils::StartsWithNoCase(action.GetName(),"CECToggleState")) +- ret = CApplicationMessenger::Get().CECToggleState(); ++ { ++ CLog::Log(LOGDEBUG, "%s: action %s [%d], toggling state of playing device", __FUNCTION__, action.GetName().c_str(), action.GetID()); ++ if (!CApplicationMessenger::Get().CECToggleState()) ++ return true; ++ } + else +- ret = CApplicationMessenger::Get().CECStandby(); +- if (!ret) /* display is switched off */ ++ { ++ CApplicationMessenger::Get().CECStandby(); + return true; ++ } + } + + ResetScreenSaver(); +diff --git a/xbmc/ApplicationMessenger.cpp b/xbmc/ApplicationMessenger.cpp +index 1a59c5c..d228273 100644 +--- a/xbmc/ApplicationMessenger.cpp ++++ b/xbmc/ApplicationMessenger.cpp +@@ -843,12 +843,12 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg) + } + case TMSG_CECACTIVATESOURCE: + { +- *((bool*)pMsg->lpVoid) = g_peripherals.ToggleDeviceState(STATE_ACTIVATE_SOURCE); ++ g_peripherals.ToggleDeviceState(STATE_ACTIVATE_SOURCE); + break; + } + case TMSG_CECSTANDBY: + { +- *((bool*)pMsg->lpVoid) = g_peripherals.ToggleDeviceState(STATE_STANDBY); ++ g_peripherals.ToggleDeviceState(STATE_STANDBY); + break; + } + case TMSG_START_ANDROID_ACTIVITY: +@@ -1396,29 +1396,19 @@ bool CApplicationMessenger::CECToggleState() + + ThreadMessage tMsg = {TMSG_CECTOGGLESTATE}; + tMsg.lpVoid = (void*)&result; +- SendMessage(tMsg, false); ++ SendMessage(tMsg, true); + + return result; + } + +-bool CApplicationMessenger::CECActivateSource() ++void CApplicationMessenger::CECActivateSource() + { +- bool result; +- + ThreadMessage tMsg = {TMSG_CECACTIVATESOURCE}; +- tMsg.lpVoid = (void*)&result; + SendMessage(tMsg, false); +- +- return result; + } + +-bool CApplicationMessenger::CECStandby() ++void CApplicationMessenger::CECStandby() + { +- bool result; +- + ThreadMessage tMsg = {TMSG_CECSTANDBY}; +- tMsg.lpVoid = (void*)&result; + SendMessage(tMsg, false); +- +- return result; + } +diff --git a/xbmc/ApplicationMessenger.h b/xbmc/ApplicationMessenger.h +index 9013567..543e065 100644 +--- a/xbmc/ApplicationMessenger.h ++++ b/xbmc/ApplicationMessenger.h +@@ -219,8 +219,8 @@ public: + + void LoadProfile(unsigned int idx); + bool CECToggleState(); +- bool CECActivateSource(); +- bool CECStandby(); ++ void CECActivateSource(); ++ void CECStandby(); + + CStdString GetResponse(); + int SetResponse(CStdString response); +-- +2.1.2 + diff --git a/libre/xbmc/0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch b/libre/xbmc/0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch new file mode 100644 index 000000000..023257ca4 --- /dev/null +++ b/libre/xbmc/0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch @@ -0,0 +1,32 @@ +From 9f1e45a10860dd23239de35673643e9e0e4a74f8 Mon Sep 17 00:00:00 2001 +From: Lars Op den Kamp <lars@opdenkamp.eu> +Date: Tue, 28 Oct 2014 14:52:16 +0100 +Subject: [PATCH 5/8] [CEC] renamed the iDoubleTapTimeoutMs in the new libCEC + for clarity. does not change binary compatibility + +--- + xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp +index 1d068dc..ad123d9 100644 +--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp ++++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp +@@ -1347,8 +1347,13 @@ void CPeripheralCecAdapter::SetConfigurationFromSettings(void) + m_configuration.bPowerOffOnStandby = iStandbyAction == 13011 ? 1 : 0; + m_configuration.bShutdownOnStandby = iStandbyAction == 13005 ? 1 : 0; + ++#if defined(CEC_DOUBLE_TAP_TIMEOUT_MS_OLD) + // double tap prevention timeout in ms. libCEC uses 50ms units for this in 2.2.0, so divide by 50 +- m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms") / 50; ++ m_configuration.iDoubleTapTimeout50Ms = GetSettingInt("double_tap_timeout_ms") / 50; ++#else ++ // backwards compatibility. will be removed once the next major release of libCEC is out ++ m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms"); ++#endif + } + + void CPeripheralCecAdapter::ReadLogicalAddresses(const CStdString &strString, cec_logical_addresses &addresses) +-- +2.1.2 + diff --git a/libre/xbmc/0006-CEC-fixed-don-t-use-CEC_CLIENT_VERSION_CURRENT-for-t.patch b/libre/xbmc/0006-CEC-fixed-don-t-use-CEC_CLIENT_VERSION_CURRENT-for-t.patch new file mode 100644 index 000000000..cd533962a --- /dev/null +++ b/libre/xbmc/0006-CEC-fixed-don-t-use-CEC_CLIENT_VERSION_CURRENT-for-t.patch @@ -0,0 +1,29 @@ +From fa01c108b60f74abb16992c1376bcca896093eac Mon Sep 17 00:00:00 2001 +From: Lars Op den Kamp <lars@opdenkamp.eu> +Date: Tue, 28 Oct 2014 16:08:00 +0100 +Subject: [PATCH 6/8] [CEC] fixed - don't use CEC_CLIENT_VERSION_CURRENT for + the client version, because it will lead to issues when XBMC is rebuilt after + a libCEC bump that changes something + +--- + xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp +index ad123d9..015daef 100644 +--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp ++++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp +@@ -1268,8 +1268,8 @@ void CPeripheralCecAdapter::SetConfigurationFromLibCEC(const CEC::libcec_configu + + void CPeripheralCecAdapter::SetConfigurationFromSettings(void) + { +- // use the same client version as libCEC version +- m_configuration.clientVersion = CEC_CLIENT_VERSION_CURRENT; ++ // client version matches the version of libCEC that we originally used the API from ++ m_configuration.clientVersion = CEC_CLIENT_VERSION_2_2_0; + + // device name 'XBMC' + snprintf(m_configuration.strDeviceName, 13, "%s", GetSettingString("device_name").c_str()); +-- +2.1.2 + diff --git a/libre/xbmc/PKGBUILD b/libre/xbmc/PKGBUILD index bc1bf18b5..ca6d81ae1 100644 --- a/libre/xbmc/PKGBUILD +++ b/libre/xbmc/PKGBUILD @@ -1,4 +1,5 @@ -# $Id: PKGBUILD 119096 2014-09-17 17:32:06Z idevolder $ +# vim:set ts=2 sw=2 et: +# $Id: PKGBUILD 121811 2014-11-04 13:38:14Z idevolder $ # Maintainer (Arch): Sergej Pupykin <pupykin.s+arch@gmail.com> # Contributor (Arch): Brad Fanella <bradfanella@archlinux.us> # Contributor (Arch): [vEX] <niechift.dot.vex.at.gmail.dot.com> @@ -14,7 +15,7 @@ _pkgname=xbmc-libre pkgname=xbmc pkgver=13.2 _codename=Gotham -pkgrel=4.parabola1 +pkgrel=5.parabola1 pkgdesc="A software media player and entertainment hub for digital media (Gotham version), without nonfree decompression engine for RAR archives and support for nonfree addons" arch=('i686' 'x86_64' 'mips64el') url="http://xbmc.org" @@ -51,12 +52,24 @@ mksource=( ) source=( "https://repo.parabolagnulinux.org/other/$_pkgname/$_pkgname-$pkgver-$_codename.tar.gz" + '0001-CEC-fixed-don-t-try-to-stick-a-value-255-in-a-byte.patch' + '0002-CEC-bump-libCEC-to-2.2.0.patch' + '0003-CEC-prevent-bus-rescan-on-a-Pi-since-the-adapter-can.patch' + '0004-CEC-fixed-don-t-return-garbage-from-CEC-related-app-.patch' + '0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch' + '0006-CEC-fixed-don-t-use-CEC_CLIENT_VERSION_CURRENT-for-t.patch' ) mksha256sums=( 'acbf5dffa3034a3406240ee3cf81e721386cd383d23d056ddde1f769e050e585' ) sha256sums=( '4d7a4e157f8805211ea0e2e15a28d856caa698d8c28a493c5f54fa2c747615bf' + 'f4b436a64e32af6728fc9a584292b56de356d9090f0db0af30798a43aaa077f3' + '9d9ccbd140a71b90d43a22b7722804b9cb509b4e1e1fec02c0e2bceaed3b3958' + '0f0401189cc8481f05d7b68c50d66e18144c7d261be783e32c5b269f4b356ad7' + '33d6bd2b0da3d8563bfdf6059ad59ca10d9fe617e51990220ceb40d6fb3129d3' + 'd98f86ceefb039b43a66332658aeee4aff25370248955ece10d04ae21f33d2a9' + 'd829a5267f0b8042308b291366915253b3104d85a780a03cdaff6bec82493b95' ) mksource() { @@ -69,12 +82,19 @@ mksource() { prepare() { cd "$srcdir/xbmc-$pkgver-$_codename" + patch -Np1 -i "$srcdir/0001-CEC-fixed-don-t-try-to-stick-a-value-255-in-a-byte.patch" + patch -Np1 -i "$srcdir/0002-CEC-bump-libCEC-to-2.2.0.patch" + patch -Np1 -i "$srcdir/0003-CEC-prevent-bus-rescan-on-a-Pi-since-the-adapter-can.patch" + patch -Np1 -i "$srcdir/0004-CEC-fixed-don-t-return-garbage-from-CEC-related-app-.patch" + patch -Np1 -i "$srcdir/0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch" + patch -Np1 -i "$srcdir/0006-CEC-fixed-don-t-use-CEC_CLIENT_VERSION_CURRENT-for-t.patch" + find -type f -name *.py -exec sed 's|^#!.*python$|#!/usr/bin/python2|' -i "{}" + sed 's|^#!.*python$|#!/usr/bin/python2|' -i tools/depends/native/rpl-native/rpl sed 's/python/python2/' -i tools/Linux/xbmc.sh.in msg2 "Use addons.xml from Parabola server (without nonfree addons support)" - sed -i -e 's|mirrors[.]xbmc[.]org/addons/gotham/addons.xml|repo.parabolagnulinux.org/other/xbmc-libre/addons/gotham/addons.xml|' addons/repository.xbmc.org/addon.xml + sed -i -e 's|mirrors[.]xbmc[.]org/addons/gotham/addons.xml|repo.parabola.nu/other/xbmc-libre/addons/gotham/addons.xml|' addons/repository.xbmc.org/addon.xml } build() { @@ -139,4 +159,3 @@ package() { "${pkgdir}$_prefix/share/licenses/$pkgname" done } -# vim:set ts=2 sw=2 et: diff --git a/libre/xbmc/xbmc.install b/libre/xbmc/xbmc.install index f90770bd5..00ac17f74 100644 --- a/libre/xbmc/xbmc.install +++ b/libre/xbmc/xbmc.install @@ -20,5 +20,5 @@ update_icons() { } update_autostart() { - echo "To autostart xbmc standalone read: https://wiki.parabolagnulinux.org/index.php/Xbmc#Autostarting_at_boot" + echo "To autostart xbmc standalone read: https://wiki.parabola.nu/index.php/Xbmc#Autostarting_at_boot" } |