diff --git a/packages/devel/ccache/package.mk b/packages/devel/ccache/package.mk index d6f5a1467e..c3ee974913 100644 --- a/packages/devel/ccache/package.mk +++ b/packages/devel/ccache/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="ccache" -PKG_VERSION="3.2.1" +PKG_VERSION="3.2.3" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" @@ -34,6 +34,8 @@ PKG_AUTORECONF="no" export CC=$LOCAL_CC +PKG_CONFIGURE_OPTS_HOST="--with-bundled-zlib" + post_makeinstall_host() { # setup ccache $ROOT/$TOOLCHAIN/bin/ccache --max-size=$CCACHE_CACHE_SIZE @@ -51,4 +53,4 @@ $ROOT/$TOOLCHAIN/bin/ccache $LOCAL_CXX "\$@" EOF chmod +x $HOST_CXX -} \ No newline at end of file +} diff --git a/packages/devel/glib/package.mk b/packages/devel/glib/package.mk index e341884a84..8aed878837 100644 --- a/packages/devel/glib/package.mk +++ b/packages/devel/glib/package.mk @@ -17,12 +17,12 @@ ################################################################################ PKG_NAME="glib" -PKG_VERSION="2.44.1" +PKG_VERSION="2.46.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPL" PKG_SITE="http://www.gtk.org/" -PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.44/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_URL="http://ftp.gnome.org/pub/gnome/sources/glib/2.46/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_DEPENDS_TARGET="toolchain zlib libffi pcre Python:host" PKG_PRIORITY="optional" PKG_SECTION="devel" diff --git a/packages/devel/glib/patches/glib-01-dont-build-tests.patch b/packages/devel/glib/patches/glib-01-dont-build-tests.patch deleted file mode 100644 index 49b59ac520..0000000000 --- a/packages/devel/glib/patches/glib-01-dont-build-tests.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 68cbd635036fe04cd07bbb1a4829eebab2d7dc03 Mon Sep 17 00:00:00 2001 -From: Stefan Saraev -Date: Wed, 20 Aug 2014 22:46:35 +0300 -Subject: [PATCH] dont build tests - ---- - Makefile.am | 2 +- - configure.ac | 17 ----------------- - 2 files changed, 1 insertions(+), 18 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 40e5cd5..db7bfc8 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -6,7 +6,7 @@ include $(top_srcdir)/glib.mk - - ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS} - --SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests -+SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs - DIST_SUBDIRS = $(SUBDIRS) build - - bin_SCRIPTS = glib-gettextize -diff --git a/configure.ac b/configure.ac -index a01e58d..f310615 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2559,23 +2559,6 @@ dnl ****************************************************************** - - AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) - --AS_IF([ test $cross_compiling = yes ], [ -- AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no) -- if test x$GLIB_GENMARSHAL = xno; then -- AC_MSG_ERROR(Could not find a glib-genmarshal in your PATH) -- fi -- -- AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas, no) -- if test x$GLIB_COMPILE_SCHEMAS = xno; then -- AC_MSG_ERROR(Could not find a glib-compile-schemas in your PATH) -- fi -- -- AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources, no) -- if test x$GLIB_COMPILE_RESOURCES = xno; then -- AC_MSG_ERROR(Could not find a glib-compile-resources in your PATH) -- fi --]) -- - dnl ************************** - dnl *** Checks for gtk-doc *** - dnl ************************** --- -1.7.2.5 - diff --git a/packages/graphics/bcm2835-driver/package.mk b/packages/graphics/bcm2835-driver/package.mk index 228b25ebbc..ba3a7284ee 100644 --- a/packages/graphics/bcm2835-driver/package.mk +++ b/packages/graphics/bcm2835-driver/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="960832a" +PKG_VERSION="ba7a8fb" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" diff --git a/packages/linux-drivers/wetekdvb/package.mk b/packages/linux-drivers/wetekdvb/package.mk index 0be31e6b9f..0761691178 100644 --- a/packages/linux-drivers/wetekdvb/package.mk +++ b/packages/linux-drivers/wetekdvb/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="wetekdvb" -PKG_VERSION="20150930" +PKG_VERSION="20151007" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree" diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 13bb54a1da..c7b2832e23 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -31,7 +31,7 @@ PKG_SHORTDESC="linux26: The Linux kernel 2.6 precompiled kernel binary image and PKG_LONGDESC="This package contains a precompiled kernel image and the modules." case "$LINUX" in amlogic) - PKG_VERSION="amlogic-3.10-753dc30" + PKG_VERSION="amlogic-3.10-9df7905" PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" ;; imx6) diff --git a/packages/linux/patches/4.1.10/linux-200-rtl28xxu-fix-control-message-flaws.patch b/packages/linux/patches/4.1.10/linux-200-rtl28xxu-fix-control-message-flaws.patch new file mode 100644 index 0000000000..c766b67719 --- /dev/null +++ b/packages/linux/patches/4.1.10/linux-200-rtl28xxu-fix-control-message-flaws.patch @@ -0,0 +1,54 @@ +# from upstream http://git.linuxtv.org/cgit.cgi/anttip/media_tree.git/commit/?h=rtl2832u_test2&id=3fde4395e9c58ab45470529f29864446230c5368 + +diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +index c3cac4c..197a4f2 100644 +--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c ++++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +@@ -34,6 +34,14 @@ static int rtl28xxu_ctrl_msg(struct dvb_usb_device *d, struct rtl28xxu_req *req) + unsigned int pipe; + u8 requesttype; + ++ mutex_lock(&d->usb_mutex); ++ ++ if (req->size > sizeof(dev->buf)) { ++ dev_err(&d->intf->dev, "too large message %u\n", req->size); ++ ret = -EINVAL; ++ goto err_mutex_unlock; ++ } ++ + if (req->index & CMD_WR_FLAG) { + /* write */ + memcpy(dev->buf, req->data, req->size); +@@ -50,14 +58,17 @@ static int rtl28xxu_ctrl_msg(struct dvb_usb_device *d, struct rtl28xxu_req *req) + dvb_usb_dbg_usb_control_msg(d->udev, 0, requesttype, req->value, + req->index, dev->buf, req->size); + if (ret < 0) +- goto err; ++ goto err_mutex_unlock; + + /* read request, copy returned data to return buf */ + if (requesttype == (USB_TYPE_VENDOR | USB_DIR_IN)) + memcpy(req->data, dev->buf, req->size); + ++ mutex_unlock(&d->usb_mutex); ++ + return 0; +-err: ++err_mutex_unlock: ++ mutex_unlock(&d->usb_mutex); + dev_dbg(&d->intf->dev, "failed=%d\n", ret); + return ret; + } +diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.h b/drivers/media/usb/dvb-usb-v2/rtl28xxu.h +index 9f6115a..1380629 100644 +--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.h ++++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.h +@@ -71,7 +71,7 @@ + + + struct rtl28xxu_dev { +- u8 buf[28]; ++ u8 buf[128]; + u8 chip_id; + u8 tuner; + char *tuner_name; diff --git a/packages/mediacenter/kodi-theme-Confluence/package.mk b/packages/mediacenter/kodi-theme-Confluence/package.mk index 80371b266b..c656111496 100644 --- a/packages/mediacenter/kodi-theme-Confluence/package.mk +++ b/packages/mediacenter/kodi-theme-Confluence/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="kodi-theme-Confluence" -PKG_VERSION="15.2-rc3-cf72616" +PKG_VERSION="15.2-rc3-9efd358" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 5a6891ad4b..99e4c17bfa 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="kodi" -PKG_VERSION="15.2-rc3-cf72616" +PKG_VERSION="15.2-rc3-9efd358" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/kodi/patches/kodi-999.51-nonX11-mousewheel-support.patch b/packages/mediacenter/kodi/patches/kodi-999.51-nonX11-mousewheel-support.patch new file mode 100644 index 0000000000..e319162b95 --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.51-nonX11-mousewheel-support.patch @@ -0,0 +1,210 @@ +From 958d47339a2427b66568fe7c2ea69831f111742a Mon Sep 17 00:00:00 2001 +From: Roman Kraevskiy +Date: Fri, 10 Jul 2015 23:36:34 +0300 +Subject: [PATCH 059/100] Mouse wheel support for X11-less linux distros + (openelec) + +--- + xbmc/input/linux/LinuxInputDevices.cpp | 125 +++++++++++++++++++++------------ + xbmc/input/linux/LinuxInputDevices.h | 2 + + 2 files changed, 82 insertions(+), 45 deletions(-) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index 32a3b46..b028cd1 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -558,22 +558,27 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev + */ + bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& devt) + { ++ bool motion = false; ++ bool wheel = false; ++ + switch (levt.code) + { + case REL_X: + m_mouseX += levt.value; + devt.motion.xrel = levt.value; + devt.motion.yrel = 0; ++ motion = true; + break; +- + case REL_Y: + m_mouseY += levt.value; + devt.motion.xrel = 0; + devt.motion.yrel = levt.value; ++ motion = true; + break; +- +- case REL_Z: + case REL_WHEEL: ++ wheel = (levt.value != 0); // process wheel event only when there was some delta ++ break; ++ case REL_Z: + default: + CLog::Log(LOGWARNING, "CLinuxInputDevice::RelEvent: Unknown rel event code: %d\n", levt.code); + return false; +@@ -588,13 +593,35 @@ bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& dev + m_mouseY = std::max(0, m_mouseY); + + +- devt.type = XBMC_MOUSEMOTION; +- devt.motion.type = XBMC_MOUSEMOTION; +- devt.motion.x = m_mouseX; +- devt.motion.y = m_mouseY; +- devt.motion.state = 0; +- devt.motion.which = m_deviceIndex; +- ++ if (motion) ++ { ++ devt.type = XBMC_MOUSEMOTION; ++ devt.motion.type = XBMC_MOUSEMOTION; ++ devt.motion.x = m_mouseX; ++ devt.motion.y = m_mouseY; ++ devt.motion.state = 0; ++ devt.motion.which = m_deviceIndex; ++ } ++ else if (wheel) ++ { ++ devt.type = XBMC_MOUSEBUTTONUP; ++ devt.button.state = XBMC_RELEASED; ++ devt.button.type = devt.type; ++ devt.button.x = m_mouseX; ++ devt.button.y = m_mouseY; ++ devt.button.button = (levt.value<0) ? XBMC_BUTTON_WHEELDOWN:XBMC_BUTTON_WHEELUP; ++ ++ /* but WHEEL up enent to the queue */ ++ m_equeue.push_back(devt); ++ ++ /* prepare and return WHEEL down event */ ++ devt.button.state = XBMC_PRESSED; ++ devt.type = XBMC_MOUSEBUTTONDOWN; ++ } ++ else ++ { ++ return false; ++ } + + return true; + } +@@ -693,57 +720,65 @@ XBMC_Event CLinuxInputDevice::ReadEvent() + + XBMC_Event devt; + +- while (1) ++ if (m_equeue.empty()) + { +- bzero(&levt, sizeof(levt)); ++ while (1) ++ { ++ bzero(&levt, sizeof(levt)); + +- bzero(&devt, sizeof(devt)); +- devt.type = XBMC_NOEVENT; ++ bzero(&devt, sizeof(devt)); ++ devt.type = XBMC_NOEVENT; + +- if(m_devicePreferredId == LI_DEVICE_NONE) +- return devt; ++ if(m_devicePreferredId == LI_DEVICE_NONE) ++ return devt; + +- readlen = read(m_fd, &levt, sizeof(levt)); ++ readlen = read(m_fd, &levt, sizeof(levt)); + +- if (readlen <= 0) +- { +- if (errno == ENODEV) ++ if (readlen <= 0) + { +- CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName); +- m_bUnplugged = true; ++ if (errno == ENODEV) ++ { ++ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName); ++ m_bUnplugged = true; ++ } ++ ++ break; + } + +- break; +- } ++ //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str()); + +- //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str()); ++ // sanity check if we realy read the event ++ if(readlen != sizeof(levt)) ++ { ++ printf("CLinuxInputDevice: read error : %s\n", strerror(errno)); ++ break; ++ } + +- // sanity check if we realy read the event +- if(readlen != sizeof(levt)) +- { +- printf("CLinuxInputDevice: read error : %s\n", strerror(errno)); +- break; +- } ++ if (!TranslateEvent(levt, devt)) ++ continue; + +- if (!TranslateEvent(levt, devt)) +- continue; ++ /* Flush previous event with DIEF_FOLLOW? */ ++ if (devt.type != XBMC_NOEVENT) ++ { ++ //printf("new event! type = %d\n", devt.type); ++ //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode); + +- /* Flush previous event with DIEF_FOLLOW? */ +- if (devt.type != XBMC_NOEVENT) +- { +- //printf("new event! type = %d\n", devt.type); +- //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode); ++ if (m_hasLeds && (m_keyMods != m_lastKeyMods)) ++ { ++ SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM); ++ SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS); ++ m_lastKeyMods = m_keyMods; ++ } + +- if (m_hasLeds && (m_keyMods != m_lastKeyMods)) +- { +- SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM); +- SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS); +- m_lastKeyMods = m_keyMods; ++ break; + } +- +- break; + } + } ++ else ++ { ++ devt = m_equeue.front(); ++ m_equeue.pop_front(); ++ } + + return devt; + } +diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h +index cf1c5ce..954d823 100644 +--- a/xbmc/input/linux/LinuxInputDevices.h ++++ b/xbmc/input/linux/LinuxInputDevices.h +@@ -22,6 +22,7 @@ + + #include + #include ++#include + #include "windowing/XBMC_events.h" + #include "input/XBMC_keyboard.h" + #include "threads/SingleLock.h" +@@ -79,6 +80,7 @@ class CLinuxInputDevice + int m_deviceMaxAxis; + bool m_bSkipNonKeyEvents; + bool m_bUnplugged; ++ std::deque m_equeue; + }; + + class CLinuxInputDevices diff --git a/packages/mediacenter/kodi/patches/kodi-999.52-multitouch-support.patch b/packages/mediacenter/kodi/patches/kodi-999.52-multitouch-support.patch new file mode 100644 index 0000000000..a06e554347 --- /dev/null +++ b/packages/mediacenter/kodi/patches/kodi-999.52-multitouch-support.patch @@ -0,0 +1,337 @@ +From 8ff131750e527416274e4f21685312785a8d0bb2 Mon Sep 17 00:00:00 2001 +From: Floris Bos +Date: Wed, 23 Sep 2015 22:34:20 +0200 +Subject: [PATCH 1/3] Fix Linux touchscreen support + +Touch devices tend to send a key event first and coordinates later. + +== +Event: type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1 +Event: type 3 (EV_ABS), code 0 (ABS_X), value 45 +Event: type 3 (EV_ABS), code 1 (ABS_Y), value 27 +== + +This does not go along well with the XBMC mouse handling code that +expects to already have the coordinates when processing the EV_KEY. +Fetch the current coordinates with ioctl() as workaround. + +Signed-off-by: Floris Bos +--- + xbmc/input/linux/LinuxInputDevices.cpp | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index b028cd1..b8f13d3 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -275,6 +275,7 @@ typedef enum + LI_CAPS_KEYS = 1, + LI_CAPS_BUTTONS = 2, + LI_CAPS_AXES = 4, ++ LI_CAPS_ABS = 8 + } LinuxInputCapsType; + + static char remoteStatus = 0xFF; // paired, battery OK +@@ -470,6 +471,23 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev + if (levt.value == 2) + return false; + ++ /* touch devices tend to send the key event before the coordinates, so we ++ cannot rely on m_mouseX and m_mouseY already having the correct values */ ++ if (m_deviceCaps & LI_CAPS_ABS) ++ { ++ struct input_absinfo absinfo; ++ ++ if (ioctl(m_fd, EVIOCGABS(ABS_X), &absinfo) == 0) ++ { ++ m_mouseX = absinfo.value; ++ } ++ ++ if (ioctl(m_fd, EVIOCGABS(ABS_Y), &absinfo) == 0) ++ { ++ m_mouseY = absinfo.value; ++ } ++ } ++ + devt.type = levt.value ? XBMC_MOUSEBUTTONDOWN : XBMC_MOUSEBUTTONUP; + devt.button.state = levt.value ? XBMC_PRESSED : XBMC_RELEASED; + devt.button.type = devt.type; +@@ -954,6 +972,12 @@ void CLinuxInputDevice::GetInfo(int fd) + m_deviceMaxAxis = std::max(num_rels, num_abs) - 1; + } + ++ /* Absolute X,Y coordinates */ ++ if (num_abs >= 2 && num_rels == 0) ++ { ++ m_deviceCaps |= LI_CAPS_ABS; ++ } ++ + /* Decide which primary input device to be. */ + if (m_deviceType & LI_DEVICE_KEYBOARD) + m_devicePreferredId = LI_DEVICE_KEYBOARD; + +From a7b5f1489dbfcb577e12c747626fe7d45ff2009d Mon Sep 17 00:00:00 2001 +From: Floris Bos +Date: Fri, 25 Sep 2015 01:07:30 +0200 +Subject: [PATCH 2/3] LinuxInputDevice: add support for multi-touch devices + +Adds support for multi-touch devices on Linux. +Support is limited to devices that are capable of +tracking identifiable contacts, and use the type B events of: + +https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt + +Signed-off-by: Floris Bos +--- + Makefile.in | 2 + + xbmc/input/linux/LinuxInputDevices.cpp | 109 ++++++++++++++++++++++++++++++++- + xbmc/input/linux/LinuxInputDevices.h | 8 +++ + xbmc/input/touch/ITouchInputHandler.h | 1 + + xbmc/windowing/WinEventsLinux.cpp | 5 ++ + xbmc/windowing/WinEventsLinux.h | 1 + + 6 files changed, 125 insertions(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index d579e11..2d4b1c8 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -157,6 +157,8 @@ DIRECTORY_ARCHIVES += xbmc/storage/android/storage_android.a + DIRECTORY_ARCHIVES += xbmc/windowing/X11/windowing_X11.a + else + DIRECTORY_ARCHIVES += xbmc/input/linux/input_linux.a ++DIRECTORY_ARCHIVES += xbmc/input/touch/input_touch.a ++DIRECTORY_ARCHIVES += xbmc/input/touch/generic/input_touch_generic.a + DIRECTORY_ARCHIVES += xbmc/network/linux/network_linux.a + DIRECTORY_ARCHIVES += xbmc/powermanagement/linux/powermanagement_linux.a + DIRECTORY_ARCHIVES += xbmc/storage/linux/storage_linux.a +diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp +index b8f13d3..6e1cd1d 100644 +--- a/xbmc/input/linux/LinuxInputDevices.cpp ++++ b/xbmc/input/linux/LinuxInputDevices.cpp +@@ -96,6 +96,8 @@ typedef unsigned long kernel_ulong_t; + #include "LinuxInputDevices.h" + #include "input/MouseStat.h" + #include "utils/log.h" ++#include "input/touch/generic/GenericTouchActionHandler.h" ++#include "input/touch/generic/GenericTouchInputHandler.h" + + #ifndef BITS_PER_LONG + #define BITS_PER_LONG (sizeof(long) * 8) +@@ -267,7 +269,8 @@ typedef enum + LI_DEVICE_MOUSE = 1, + LI_DEVICE_JOYSTICK = 2, + LI_DEVICE_KEYBOARD = 4, +- LI_DEVICE_REMOTE = 8 ++ LI_DEVICE_REMOTE = 8, ++ LI_DEVICE_MULTITOUCH = 16 + } LinuxInputDeviceType; + + typedef enum +@@ -302,6 +305,10 @@ CLinuxInputDevice::CLinuxInputDevice(const std::string& fileName, int index): + m_deviceMaxKeyCode = 0; + m_deviceMaxAxis = 0; + m_bUnplugged = false; ++ m_mt_currentSlot = 0; ++ memset(&m_mt_x, 0, sizeof(m_mt_x)); ++ memset(&m_mt_y, 0, sizeof(m_mt_y)); ++ memset(&m_mt_event, 0, sizeof(m_mt_event)); + + Open(); + } +@@ -681,11 +688,102 @@ bool CLinuxInputDevice::AbsEvent(const struct input_event& levt, XBMC_Event& dev + } + + /* ++ * Process multi-touch absolute events ++ * Only store the information, do not fire event until we receive an EV_SYN ++ */ ++bool CLinuxInputDevice::mtAbsEvent(const struct input_event& levt) ++{ ++ switch (levt.code) ++ { ++ case ABS_MT_SLOT: ++ m_mt_currentSlot = levt.value; ++ break; ++ ++ case ABS_MT_TRACKING_ID: ++ if (m_mt_currentSlot < TOUCH_MAX_POINTERS) ++ { ++ if (levt.value == -1) ++ m_mt_event[m_mt_currentSlot] = TouchInputUp; ++ else ++ m_mt_event[m_mt_currentSlot] = TouchInputDown; ++ } ++ break; ++ ++ case ABS_MT_POSITION_X: ++ if (m_mt_currentSlot < TOUCH_MAX_POINTERS) ++ { ++ m_mt_x[m_mt_currentSlot] = levt.value; ++ if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) ++ m_mt_event[m_mt_currentSlot] = TouchInputMove; ++ } ++ break; ++ ++ case ABS_MT_POSITION_Y: ++ if (m_mt_currentSlot < TOUCH_MAX_POINTERS) ++ { ++ m_mt_y[m_mt_currentSlot] = levt.value; ++ if (m_mt_event[m_mt_currentSlot] == TouchInputUnchanged) ++ m_mt_event[m_mt_currentSlot] = TouchInputMove; ++ } ++ break; ++ ++ default: ++ return false; ++ } ++ ++ return true; ++} ++ ++/* ++ * Process stored multi-touch events ++ */ ++bool CLinuxInputDevice::mtSynEvent(const struct input_event& levt) ++{ ++ float size = 10.0f; ++ int64_t nanotime = levt.time.tv_sec * 1000000000LL + levt.time.tv_usec * 1000LL; ++ ++ for (int ptr=0; ptr < TOUCH_MAX_POINTERS; ptr++) ++ { ++ /* While the comments of ITouchInputHandler::UpdateTouchPointer() say ++ "If there's an event for every touch action this method does not need to be called at all" ++ gesture detection currently doesn't work properly without this call. */ ++ CGenericTouchInputHandler::Get().UpdateTouchPointer(ptr, m_mt_x[ptr], m_mt_y[ptr], nanotime, size); ++ } ++ ++ for (int ptr=0; ptr < TOUCH_MAX_POINTERS; ptr++) ++ { ++ if (m_mt_event[ptr] != TouchInputUnchanged) ++ { ++ CGenericTouchInputHandler::Get().HandleTouchInput(m_mt_event[ptr], m_mt_x[ptr], m_mt_y[ptr], nanotime, ptr, size); ++ m_mt_event[ptr] = TouchInputUnchanged; ++ } ++ } ++ ++ return true; ++} ++ ++/* + * Translates a Linux input event into a DirectFB input event. + */ + bool CLinuxInputDevice::TranslateEvent(const struct input_event& levt, + XBMC_Event& devt) + { ++ if (m_devicePreferredId == LI_DEVICE_MULTITOUCH) ++ { ++ switch (levt.type) ++ { ++ case EV_ABS: ++ return mtAbsEvent(levt); ++ ++ case EV_SYN: ++ return mtSynEvent(levt); ++ ++ default: ++ // Ignore legacy (key) events ++ return false; ++ } ++ } ++ + switch (levt.type) + { + case EV_KEY: +@@ -930,6 +1028,10 @@ void CLinuxInputDevice::GetInfo(int fd) + for (i = 0; i < ABS_PRESSURE; i++) + if (test_bit( i, absbit )) + num_abs++; ++ ++ /* test if it is a multi-touch type B device */ ++ if (test_bit(ABS_MT_SLOT, absbit)) ++ m_deviceType |= LI_DEVICE_MULTITOUCH; + } + + /* Mouse, Touchscreen or Smartpad ? */ +@@ -981,6 +1083,11 @@ void CLinuxInputDevice::GetInfo(int fd) + /* Decide which primary input device to be. */ + if (m_deviceType & LI_DEVICE_KEYBOARD) + m_devicePreferredId = LI_DEVICE_KEYBOARD; ++ else if (m_deviceType & LI_DEVICE_MULTITOUCH) ++ { ++ m_devicePreferredId = LI_DEVICE_MULTITOUCH; ++ CGenericTouchInputHandler::Get().RegisterHandler(&CGenericTouchActionHandler::Get()); ++ } + else if (m_deviceType & LI_DEVICE_REMOTE) + m_devicePreferredId = LI_DEVICE_REMOTE; + else if (m_deviceType & LI_DEVICE_JOYSTICK) +diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h +index 954d823..8c88a1d 100644 +--- a/xbmc/input/linux/LinuxInputDevices.h ++++ b/xbmc/input/linux/LinuxInputDevices.h +@@ -26,6 +26,8 @@ + #include "windowing/XBMC_events.h" + #include "input/XBMC_keyboard.h" + #include "threads/SingleLock.h" ++#include "input/touch/ITouchInputHandler.h" ++#include "input/touch/generic/IGenericTouchGestureDetector.h" + + struct KeymapEntry + { +@@ -60,6 +62,8 @@ class CLinuxInputDevice + XBMCMod UpdateModifiers(XBMC_Event& devt); + bool GetKeymapEntry(KeymapEntry& entry); + int KeyboardGetSymbol(unsigned short value); ++ bool mtAbsEvent(const struct input_event& levt); ++ bool mtSynEvent(const struct input_event& levt); + + int m_fd; + int m_vt_fd; +@@ -81,6 +85,10 @@ class CLinuxInputDevice + bool m_bSkipNonKeyEvents; + bool m_bUnplugged; + std::deque m_equeue; ++ int m_mt_currentSlot; ++ int m_mt_x[TOUCH_MAX_POINTERS]; ++ int m_mt_y[TOUCH_MAX_POINTERS]; ++ TouchInput m_mt_event[TOUCH_MAX_POINTERS]; + }; + + class CLinuxInputDevices +diff --git a/xbmc/input/touch/ITouchInputHandler.h b/xbmc/input/touch/ITouchInputHandler.h +index 6ea47db..43c7a76 100644 +--- a/xbmc/input/touch/ITouchInputHandler.h ++++ b/xbmc/input/touch/ITouchInputHandler.h +@@ -28,6 +28,7 @@ + * \brief Touch input event + */ + typedef enum { ++ TouchInputUnchanged = 0, + TouchInputAbort, + TouchInputDown, + TouchInputUp, +diff --git a/xbmc/windowing/WinEventsLinux.cpp b/xbmc/windowing/WinEventsLinux.cpp +index 89aca2b..04e3544 100644 +--- a/xbmc/windowing/WinEventsLinux.cpp ++++ b/xbmc/windowing/WinEventsLinux.cpp +@@ -241,4 +241,9 @@ size_t CWinEventsLinux::GetQueueSize() + return m_devices.Size(); + } + ++void CWinEventsLinux::MessagePush(XBMC_Event *ev) ++{ ++ g_application.OnEvent(*ev); ++} ++ + #endif +diff --git a/xbmc/windowing/WinEventsLinux.h b/xbmc/windowing/WinEventsLinux.h +index 5c2b583..dc73b39 100644 +--- a/xbmc/windowing/WinEventsLinux.h ++++ b/xbmc/windowing/WinEventsLinux.h +@@ -31,6 +31,7 @@ class CWinEventsLinux : public IWinEvents + CWinEventsLinux(); + bool MessagePump(); + size_t GetQueueSize(); ++ void MessagePush(XBMC_Event *ev); + void RefreshDevices(); + void Notify(const Observable &obs, const ObservableMessage msg) + { diff --git a/packages/mediacenter/kodi/scripts/systemd-addon-wrapper b/packages/mediacenter/kodi/scripts/systemd-addon-wrapper index a9e4ef7705..54639a8e5d 100755 --- a/packages/mediacenter/kodi/scripts/systemd-addon-wrapper +++ b/packages/mediacenter/kodi/scripts/systemd-addon-wrapper @@ -30,6 +30,7 @@ if [ -f "/storage/.kodi/addons/$1/system.d/$1.service" ] ; then else # disable = false: setup systemctl enable "/storage/.kodi/addons/$1/system.d/$1.service" + chmod +x "/storage/.kodi/addons/$1/bin"/* systemctl start "$1.service" fi fi diff --git a/packages/multimedia/libbluray/package.mk b/packages/multimedia/libbluray/package.mk index 36db067a8b..8ae12c4427 100644 --- a/packages/multimedia/libbluray/package.mk +++ b/packages/multimedia/libbluray/package.mk @@ -23,7 +23,7 @@ PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="https://www.videolan.org/developers/libbluray.html" PKG_URL="https://ftp.videolan.org/pub/videolan/libbluray/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS_TARGET="toolchain freetype libxml2" +PKG_DEPENDS_TARGET="toolchain fontconfig freetype libxml2" PKG_PRIORITY="optional" PKG_SECTION="multimedia" PKG_SHORTDESC="libbluray: A Blu-Ray Discs playback library" @@ -56,4 +56,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-werror \ --disable-doxygen-html \ --disable-doxygen-ps \ --disable-doxygen-pdf \ + --with-freetype \ + --with-fontconfig \ + --with-libxml2 \ --with-gnu-ld" diff --git a/packages/network/wireless-regdb/package.mk b/packages/network/wireless-regdb/package.mk index 2da5740bce..66589d4601 100644 --- a/packages/network/wireless-regdb/package.mk +++ b/packages/network/wireless-regdb/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="wireless-regdb" -PKG_VERSION="2015.07.20" +PKG_VERSION="2015.09.25" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/print/freetype/package.mk b/packages/print/freetype/package.mk index 297838d536..6cc9d9dd1d 100644 --- a/packages/print/freetype/package.mk +++ b/packages/print/freetype/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="freetype" -PKG_VERSION="2.6" +PKG_VERSION="2.6.1" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/print/freetype/patches/freetype-01-fix-pkgconf.patch b/packages/print/freetype/patches/freetype-01-fix-pkgconf.patch index 9828f2bb68..9bcca675e7 100644 --- a/packages/print/freetype/patches/freetype-01-fix-pkgconf.patch +++ b/packages/print/freetype/patches/freetype-01-fix-pkgconf.patch @@ -1,26 +1,14 @@ -From 7688dae788f3a3f8f5f0478f096904cc885a1a90 Mon Sep 17 00:00:00 2001 -From: Stefan Saraev -Date: Sat, 16 Aug 2014 14:57:02 +0300 -Subject: [PATCH] fix pkgconf - ---- - builds/unix/freetype2.in | 6 +++--- - 1 files changed, 3 insertions(+), 3 deletions(-) - -diff -Naur freetype-2.5.4/builds/unix/freetype2.in freetype-2.5.4.patch/builds/unix/freetype2.in ---- freetype-2.5.4/builds/unix/freetype2.in 2014-11-19 22:36:25.000000000 +0100 -+++ freetype-2.5.4.patch/builds/unix/freetype2.in 2014-12-08 20:29:05.594849395 +0100 +diff -Naur freetype-2.6.1/builds/unix/freetype2.in freetype-2.6.1.patch/builds/unix/freetype2.in +--- freetype-2.6.1/builds/unix/freetype2.in 2015-09-25 07:58:57.000000000 +0200 ++++ freetype-2.6.1.patch/builds/unix/freetype2.in 2015-10-12 21:58:50.736816464 +0200 @@ -1,7 +1,7 @@ prefix=%prefix% -exec_prefix=%exec_prefix% -libdir=%libdir% --includedir=%includedir%/freetype2 +-includedir=%includedir% +exec_prefix=${prefix} +libdir=${exec_prefix}/lib -+includedir=${prefix}/include/freetype2 ++includedir=${prefix}/include Name: FreeType 2 URL: http://freetype.org --- -1.7.2.5 - diff --git a/packages/sysutils/busybox/config/busybox-host.conf b/packages/sysutils/busybox/config/busybox-host.conf index dd93110068..99a11d1e89 100644 --- a/packages/sysutils/busybox/config/busybox-host.conf +++ b/packages/sysutils/busybox/config/busybox-host.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.23.0 -# Fri Dec 26 23:15:35 2014 +# Busybox version: 1.24.0 +# Tue Oct 13 14:34:37 2015 # CONFIG_HAVE_DOT_CONFIG=y @@ -156,6 +156,7 @@ CONFIG_FEATURE_COPYBUF_KB=4 # CONFIG_GZIP is not set # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set # CONFIG_LZOP is not set # CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_RPM2CPIO is not set @@ -183,10 +184,17 @@ CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_DATE_ISOFMT is not set # CONFIG_FEATURE_DATE_NANO is not set # CONFIG_FEATURE_DATE_COMPAT is not set +# CONFIG_DD is not set +# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +# CONFIG_FEATURE_DD_IBS_OBS is not set +# CONFIG_FEATURE_DD_STATUS is not set # CONFIG_HOSTID is not set # CONFIG_ID is not set # CONFIG_GROUPS is not set # CONFIG_SHUF is not set +# CONFIG_SYNC is not set +# CONFIG_FEATURE_SYNC_FANCY is not set # CONFIG_TEST is not set # CONFIG_FEATURE_TEST_64 is not set # CONFIG_TOUCH is not set @@ -195,6 +203,7 @@ CONFIG_GZIP_FAST=0 # CONFIG_TR is not set # CONFIG_FEATURE_TR_CLASSES is not set # CONFIG_FEATURE_TR_EQUIV is not set +# CONFIG_TRUNCATE is not set # CONFIG_UNLINK is not set # CONFIG_BASE64 is not set # CONFIG_WHO is not set @@ -211,10 +220,6 @@ CONFIG_GZIP_FAST=0 # CONFIG_CP is not set # CONFIG_FEATURE_CP_LONG_OPTIONS is not set # CONFIG_CUT is not set -# CONFIG_DD is not set -# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set -# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set -# CONFIG_FEATURE_DD_IBS_OBS is not set # CONFIG_DF is not set # CONFIG_FEATURE_DF_FANCY is not set # CONFIG_DIRNAME is not set @@ -283,7 +288,6 @@ CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_STAT_FORMAT is not set # CONFIG_STTY is not set # CONFIG_SUM is not set -# CONFIG_SYNC is not set # CONFIG_TAC is not set # CONFIG_TAIL is not set # CONFIG_FEATURE_FANCY_TAIL is not set @@ -292,6 +296,7 @@ CONFIG_GZIP_FAST=0 # CONFIG_TRUE is not set # CONFIG_TTY is not set # CONFIG_UNAME is not set +CONFIG_UNAME_OSNAME="" # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set # CONFIG_UNIQ is not set @@ -533,7 +538,18 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set # CONFIG_FEATURE_MDEV_EXEC is not set # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +# CONFIG_MOUNT is not set +# CONFIG_FEATURE_MOUNT_FAKE is not set +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +# CONFIG_FEATURE_MOUNT_LABEL is not set +# CONFIG_FEATURE_MOUNT_NFS is not set +# CONFIG_FEATURE_MOUNT_CIFS is not set +# CONFIG_FEATURE_MOUNT_FLAGS is not set +# CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set # CONFIG_REV is not set +# CONFIG_UEVENT is not set # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set # CONFIG_BLKID is not set @@ -579,15 +595,6 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # CONFIG_MKSWAP is not set # CONFIG_FEATURE_MKSWAP_UUID is not set # CONFIG_MORE is not set -# CONFIG_MOUNT is not set -# CONFIG_FEATURE_MOUNT_FAKE is not set -# CONFIG_FEATURE_MOUNT_VERBOSE is not set -# CONFIG_FEATURE_MOUNT_HELPERS is not set -# CONFIG_FEATURE_MOUNT_LABEL is not set -# CONFIG_FEATURE_MOUNT_NFS is not set -# CONFIG_FEATURE_MOUNT_CIFS is not set -# CONFIG_FEATURE_MOUNT_FLAGS is not set -# CONFIG_FEATURE_MOUNT_FSTAB is not set # CONFIG_PIVOT_ROOT is not set # CONFIG_RDATE is not set # CONFIG_RDEV is not set @@ -636,10 +643,15 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # CONFIG_FEATURE_CROND_D is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set CONFIG_FEATURE_CROND_DIR="" +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set # CONFIG_LESS is not set CONFIG_FEATURE_LESS_MAXLINES=0 # CONFIG_FEATURE_LESS_BRACKETS is not set # CONFIG_FEATURE_LESS_FLAGS is not set +# CONFIG_FEATURE_LESS_TRUNCATE is not set # CONFIG_FEATURE_LESS_MARKS is not set # CONFIG_FEATURE_LESS_REGEXP is not set # CONFIG_FEATURE_LESS_WINCH is not set @@ -734,6 +746,13 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0 # CONFIG_PING is not set # CONFIG_PING6 is not set # CONFIG_FEATURE_FANCY_PING is not set +# CONFIG_WGET is not set +# CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set +# CONFIG_FEATURE_WGET_TIMEOUT is not set +# CONFIG_FEATURE_WGET_OPENSSL is not set +# CONFIG_FEATURE_WGET_SSL_HELPER is not set # CONFIG_WHOIS is not set # CONFIG_FEATURE_IPV6 is not set # CONFIG_FEATURE_UNIX_LOCAL is not set @@ -795,6 +814,7 @@ CONFIG_IFUPDOWN_IFSTATE_PATH="" # CONFIG_FEATURE_IP_ADDRESS is not set # CONFIG_FEATURE_IP_LINK is not set # CONFIG_FEATURE_IP_ROUTE is not set +CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_FEATURE_IP_RULE is not set # CONFIG_FEATURE_IP_SHORT_FORMS is not set @@ -857,11 +877,6 @@ CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # CONFIG_UDPSVD is not set # CONFIG_VCONFIG is not set -# CONFIG_WGET is not set -# CONFIG_FEATURE_WGET_STATUSBAR is not set -# CONFIG_FEATURE_WGET_AUTHENTICATION is not set -# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set -# CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_ZCIP is not set # diff --git a/packages/sysutils/busybox/config/busybox-init.conf b/packages/sysutils/busybox/config/busybox-init.conf index aa49effdc4..038f8b58e0 100644 --- a/packages/sysutils/busybox/config/busybox-init.conf +++ b/packages/sysutils/busybox/config/busybox-init.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.23.1 -# Sat Feb 21 12:43:27 2015 +# Busybox version: 1.24.0 +# Tue Oct 13 14:35:18 2015 # CONFIG_HAVE_DOT_CONFIG=y @@ -156,6 +156,7 @@ CONFIG_FEATURE_SEAMLESS_GZ=y # CONFIG_GZIP is not set # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set # CONFIG_LZOP is not set # CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_RPM2CPIO is not set @@ -183,10 +184,17 @@ CONFIG_CAT=y # CONFIG_FEATURE_DATE_ISOFMT is not set # CONFIG_FEATURE_DATE_NANO is not set # CONFIG_FEATURE_DATE_COMPAT is not set +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y # CONFIG_HOSTID is not set # CONFIG_ID is not set # CONFIG_GROUPS is not set # CONFIG_SHUF is not set +CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y # CONFIG_TEST is not set CONFIG_FEATURE_TEST_64=y # CONFIG_TOUCH is not set @@ -195,6 +203,7 @@ CONFIG_FEATURE_TEST_64=y CONFIG_TR=y CONFIG_FEATURE_TR_CLASSES=y CONFIG_FEATURE_TR_EQUIV=y +# CONFIG_TRUNCATE is not set # CONFIG_UNLINK is not set # CONFIG_BASE64 is not set # CONFIG_WHO is not set @@ -211,10 +220,6 @@ CONFIG_CHROOT=y CONFIG_CP=y # CONFIG_FEATURE_CP_LONG_OPTIONS is not set # CONFIG_CUT is not set -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y -CONFIG_FEATURE_DD_IBS_OBS=y CONFIG_DF=y # CONFIG_FEATURE_DF_FANCY is not set # CONFIG_DIRNAME is not set @@ -283,7 +288,6 @@ CONFIG_STAT=y # CONFIG_FEATURE_STAT_FORMAT is not set # CONFIG_STTY is not set # CONFIG_SUM is not set -CONFIG_SYNC=y # CONFIG_TAC is not set CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y @@ -292,6 +296,7 @@ CONFIG_FEATURE_FANCY_TAIL=y # CONFIG_TRUE is not set # CONFIG_TTY is not set CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="GNU/Linux" # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set # CONFIG_UNIQ is not set @@ -549,7 +554,18 @@ CONFIG_FSTRIM=y # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set # CONFIG_FEATURE_MDEV_EXEC is not set # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +# CONFIG_FEATURE_MOUNT_VERBOSE is not set +# CONFIG_FEATURE_MOUNT_HELPERS is not set +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +# CONFIG_FEATURE_MOUNT_CIFS is not set +CONFIG_FEATURE_MOUNT_FLAGS=y +# CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set # CONFIG_REV is not set +CONFIG_UEVENT=y # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set CONFIG_BLKID=y @@ -595,15 +611,6 @@ CONFIG_FEATURE_FBSET_READMODE=y # CONFIG_MKSWAP is not set # CONFIG_FEATURE_MKSWAP_UUID is not set # CONFIG_MORE is not set -CONFIG_MOUNT=y -CONFIG_FEATURE_MOUNT_FAKE=y -# CONFIG_FEATURE_MOUNT_VERBOSE is not set -# CONFIG_FEATURE_MOUNT_HELPERS is not set -CONFIG_FEATURE_MOUNT_LABEL=y -CONFIG_FEATURE_MOUNT_NFS=y -# CONFIG_FEATURE_MOUNT_CIFS is not set -CONFIG_FEATURE_MOUNT_FLAGS=y -# CONFIG_FEATURE_MOUNT_FSTAB is not set CONFIG_PIVOT_ROOT=y # CONFIG_RDATE is not set # CONFIG_RDEV is not set @@ -660,10 +667,15 @@ CONFIG_FEATURE_VOLUMEID_XFS=y # CONFIG_FEATURE_CROND_D is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set CONFIG_FEATURE_CROND_DIR="" +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set # CONFIG_LESS is not set CONFIG_FEATURE_LESS_MAXLINES=0 # CONFIG_FEATURE_LESS_BRACKETS is not set # CONFIG_FEATURE_LESS_FLAGS is not set +# CONFIG_FEATURE_LESS_TRUNCATE is not set # CONFIG_FEATURE_LESS_MARKS is not set # CONFIG_FEATURE_LESS_REGEXP is not set # CONFIG_FEATURE_LESS_WINCH is not set @@ -758,6 +770,13 @@ CONFIG_NBDCLIENT=y CONFIG_PING=y # CONFIG_PING6 is not set CONFIG_FEATURE_FANCY_PING=y +# CONFIG_WGET is not set +# CONFIG_FEATURE_WGET_STATUSBAR is not set +# CONFIG_FEATURE_WGET_AUTHENTICATION is not set +# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set +# CONFIG_FEATURE_WGET_TIMEOUT is not set +# CONFIG_FEATURE_WGET_OPENSSL is not set +# CONFIG_FEATURE_WGET_SSL_HELPER is not set # CONFIG_WHOIS is not set # CONFIG_FEATURE_IPV6 is not set # CONFIG_FEATURE_UNIX_LOCAL is not set @@ -819,6 +838,7 @@ CONFIG_IFUPDOWN_IFSTATE_PATH="" # CONFIG_FEATURE_IP_ADDRESS is not set # CONFIG_FEATURE_IP_LINK is not set # CONFIG_FEATURE_IP_ROUTE is not set +CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_FEATURE_IP_RULE is not set # CONFIG_FEATURE_IP_SHORT_FORMS is not set @@ -881,11 +901,6 @@ CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # CONFIG_UDPSVD is not set # CONFIG_VCONFIG is not set -# CONFIG_WGET is not set -# CONFIG_FEATURE_WGET_STATUSBAR is not set -# CONFIG_FEATURE_WGET_AUTHENTICATION is not set -# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set -# CONFIG_FEATURE_WGET_TIMEOUT is not set # CONFIG_ZCIP is not set # diff --git a/packages/sysutils/busybox/config/busybox-target.conf b/packages/sysutils/busybox/config/busybox-target.conf index d6867098a2..1a07262da0 100644 --- a/packages/sysutils/busybox/config/busybox-target.conf +++ b/packages/sysutils/busybox/config/busybox-target.conf @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.23.2 -# Sun Mar 29 18:55:47 2015 +# Busybox version: 1.24.0 +# Tue Oct 13 14:36:02 2015 # CONFIG_HAVE_DOT_CONFIG=y @@ -156,6 +156,7 @@ CONFIG_FEATURE_CPIO_P=y CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y CONFIG_GZIP_FAST=0 +CONFIG_FEATURE_GZIP_LEVELS=y # CONFIG_LZOP is not set # CONFIG_LZOP_COMPR_HIGH is not set # CONFIG_RPM2CPIO is not set @@ -183,10 +184,17 @@ CONFIG_DATE=y CONFIG_FEATURE_DATE_ISOFMT=y CONFIG_FEATURE_DATE_NANO=y CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y # CONFIG_HOSTID is not set CONFIG_ID=y CONFIG_GROUPS=y # CONFIG_SHUF is not set +CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y # CONFIG_TEST is not set CONFIG_FEATURE_TEST_64=y CONFIG_TOUCH=y @@ -195,6 +203,7 @@ CONFIG_FEATURE_TOUCH_SUSV3=y CONFIG_TR=y CONFIG_FEATURE_TR_CLASSES=y CONFIG_FEATURE_TR_EQUIV=y +# CONFIG_TRUNCATE is not set # CONFIG_UNLINK is not set # CONFIG_BASE64 is not set # CONFIG_WHO is not set @@ -211,10 +220,6 @@ CONFIG_CHROOT=y CONFIG_CP=y CONFIG_FEATURE_CP_LONG_OPTIONS=y CONFIG_CUT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y -CONFIG_FEATURE_DD_IBS_OBS=y CONFIG_DF=y # CONFIG_FEATURE_DF_FANCY is not set CONFIG_DIRNAME=y @@ -283,7 +288,6 @@ CONFIG_STAT=y # CONFIG_FEATURE_STAT_FORMAT is not set # CONFIG_STTY is not set # CONFIG_SUM is not set -CONFIG_SYNC=y # CONFIG_TAC is not set CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y @@ -292,6 +296,7 @@ CONFIG_FEATURE_TEE_USE_BLOCK_IO=y CONFIG_TRUE=y # CONFIG_TTY is not set CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="GNU/Linux" # CONFIG_UNEXPAND is not set # CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set CONFIG_UNIQ=y @@ -549,7 +554,18 @@ CONFIG_FSTRIM=y # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set # CONFIG_FEATURE_MDEV_EXEC is not set # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +CONFIG_FEATURE_MOUNT_NFS=y +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +# CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set # CONFIG_REV is not set +CONFIG_UEVENT=y # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set # CONFIG_BLKID is not set @@ -595,15 +611,6 @@ CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y CONFIG_MKSWAP=y CONFIG_FEATURE_MKSWAP_UUID=y CONFIG_MORE=y -CONFIG_MOUNT=y -CONFIG_FEATURE_MOUNT_FAKE=y -CONFIG_FEATURE_MOUNT_VERBOSE=y -CONFIG_FEATURE_MOUNT_HELPERS=y -CONFIG_FEATURE_MOUNT_LABEL=y -CONFIG_FEATURE_MOUNT_NFS=y -CONFIG_FEATURE_MOUNT_CIFS=y -CONFIG_FEATURE_MOUNT_FLAGS=y -# CONFIG_FEATURE_MOUNT_FSTAB is not set # CONFIG_PIVOT_ROOT is not set CONFIG_RDATE=y # CONFIG_RDEV is not set @@ -660,10 +667,15 @@ CONFIG_CROND=y CONFIG_FEATURE_CROND_D=y # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set CONFIG_FEATURE_CROND_DIR="/storage/.cache/cron" +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set CONFIG_LESS=y CONFIG_FEATURE_LESS_MAXLINES=9999999 CONFIG_FEATURE_LESS_BRACKETS=y CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y CONFIG_FEATURE_LESS_MARKS=y CONFIG_FEATURE_LESS_REGEXP=y CONFIG_FEATURE_LESS_WINCH=y @@ -758,6 +770,13 @@ CONFIG_NC_110_COMPAT=y CONFIG_PING=y CONFIG_PING6=y CONFIG_FEATURE_FANCY_PING=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_FEATURE_WGET_SSL_HELPER=y CONFIG_WHOIS=y CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set @@ -819,6 +838,7 @@ CONFIG_IP=y CONFIG_FEATURE_IP_ADDRESS=y CONFIG_FEATURE_IP_LINK=y CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" CONFIG_FEATURE_IP_TUNNEL=y # CONFIG_FEATURE_IP_RULE is not set # CONFIG_FEATURE_IP_SHORT_FORMS is not set @@ -881,11 +901,6 @@ CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" # CONFIG_UDPSVD is not set CONFIG_VCONFIG=y -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_TIMEOUT=y # CONFIG_ZCIP is not set # diff --git a/packages/sysutils/busybox/package.mk b/packages/sysutils/busybox/package.mk index 69ad1785e5..0570112e7c 100644 --- a/packages/sysutils/busybox/package.mk +++ b/packages/sysutils/busybox/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="busybox" -PKG_VERSION="1.23.2" +PKG_VERSION="1.24.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/sysutils/busybox/patches/busybox-01_check_cc.patch b/packages/sysutils/busybox/patches/busybox-01_check_cc.patch index 64c2d68559..6f485085db 100644 --- a/packages/sysutils/busybox/patches/busybox-01_check_cc.patch +++ b/packages/sysutils/busybox/patches/busybox-01_check_cc.patch @@ -1,12 +1,12 @@ -diff -Naur busybox-1.17.3-old/scripts/trylink busybox-1.17.3-new/scripts/trylink ---- busybox-1.17.3-old/scripts/trylink 2010-09-16 16:05:35.000000000 -0700 -+++ busybox-1.17.3-new/scripts/trylink 2010-10-10 07:38:03.000000000 -0700 +diff -Naur busybox-1.24.0/scripts/trylink busybox-1.24.0.patch/scripts/trylink +--- busybox-1.24.0/scripts/trylink 2015-10-12 14:37:58.000000000 +0200 ++++ busybox-1.24.0.patch/scripts/trylink 2015-10-13 18:49:50.537508072 +0200 @@ -49,7 +49,7 @@ - local tempname="/tmp/temp.$$.$RANDOM" + local tempname="$(mktemp)" # Can use "-o /dev/null", but older gcc tend to *unlink it* on failure! :( # "-xc": C language. "/dev/null" is an empty source file. -- if $CC $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then -+ if $CC $CFLAGS $LDFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then +- if $CC $CPPFLAGS $CFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then ++ if $CC $CPPFLAGS $CFLAGS $LDFLAGS $1 -shared -xc /dev/null -o "$tempname".o >/dev/null 2>&1; then echo "$1"; else echo "$2"; diff --git a/packages/tools/bcm2835-bootloader/package.mk b/packages/tools/bcm2835-bootloader/package.mk index 1aadec8d27..f7e75eaa48 100644 --- a/packages/tools/bcm2835-bootloader/package.mk +++ b/packages/tools/bcm2835-bootloader/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="960832a" +PKG_VERSION="ba7a8fb" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree" diff --git a/packages/web/curl/package.mk b/packages/web/curl/package.mk index 7e9a599ac3..e57d541176 100644 --- a/packages/web/curl/package.mk +++ b/packages/web/curl/package.mk @@ -25,7 +25,7 @@ # there: http://forum.xbmc.org/showthread.php?tid=177557 PKG_NAME="curl" -PKG_VERSION="7.44.0" +PKG_VERSION="7.45.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="MIT" diff --git a/projects/RPi/filesystem/usr/lib/systemd/system/serial-console.service b/projects/RPi/filesystem/usr/lib/systemd/system/serial-console.service index d70e3df75f..5dffa1a843 100644 --- a/projects/RPi/filesystem/usr/lib/systemd/system/serial-console.service +++ b/projects/RPi/filesystem/usr/lib/systemd/system/serial-console.service @@ -5,7 +5,8 @@ ConditionKernelCommandLine=console [Service] WorkingDirectory=/storage -ExecStart=/bin/sh -c '. /etc/profile; exec /bin/sh' +Environment="ENV=/etc/profile" +ExecStart=/bin/sh Restart=always RestartSec=0 StandardInput=tty diff --git a/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch b/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch index dbd11bc633..1031ed1b49 100644 --- a/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch +++ b/projects/RPi/patches/kodi/kodi-001-isengard-rpb-backports.patch @@ -5720,217 +5720,6 @@ index f6c8df0..5c2b583 100644 #endif -From 958d47339a2427b66568fe7c2ea69831f111742a Mon Sep 17 00:00:00 2001 -From: Roman Kraevskiy -Date: Fri, 10 Jul 2015 23:36:34 +0300 -Subject: [PATCH 059/100] Mouse wheel support for X11-less linux distros - (openelec) - ---- - xbmc/input/linux/LinuxInputDevices.cpp | 125 +++++++++++++++++++++------------ - xbmc/input/linux/LinuxInputDevices.h | 2 + - 2 files changed, 82 insertions(+), 45 deletions(-) - -diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp -index 32a3b46..b028cd1 100644 ---- a/xbmc/input/linux/LinuxInputDevices.cpp -+++ b/xbmc/input/linux/LinuxInputDevices.cpp -@@ -558,22 +558,27 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev - */ - bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& devt) - { -+ bool motion = false; -+ bool wheel = false; -+ - switch (levt.code) - { - case REL_X: - m_mouseX += levt.value; - devt.motion.xrel = levt.value; - devt.motion.yrel = 0; -+ motion = true; - break; -- - case REL_Y: - m_mouseY += levt.value; - devt.motion.xrel = 0; - devt.motion.yrel = levt.value; -+ motion = true; - break; -- -- case REL_Z: - case REL_WHEEL: -+ wheel = (levt.value != 0); // process wheel event only when there was some delta -+ break; -+ case REL_Z: - default: - CLog::Log(LOGWARNING, "CLinuxInputDevice::RelEvent: Unknown rel event code: %d\n", levt.code); - return false; -@@ -588,13 +593,35 @@ bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& dev - m_mouseY = std::max(0, m_mouseY); - - -- devt.type = XBMC_MOUSEMOTION; -- devt.motion.type = XBMC_MOUSEMOTION; -- devt.motion.x = m_mouseX; -- devt.motion.y = m_mouseY; -- devt.motion.state = 0; -- devt.motion.which = m_deviceIndex; -- -+ if (motion) -+ { -+ devt.type = XBMC_MOUSEMOTION; -+ devt.motion.type = XBMC_MOUSEMOTION; -+ devt.motion.x = m_mouseX; -+ devt.motion.y = m_mouseY; -+ devt.motion.state = 0; -+ devt.motion.which = m_deviceIndex; -+ } -+ else if (wheel) -+ { -+ devt.type = XBMC_MOUSEBUTTONUP; -+ devt.button.state = XBMC_RELEASED; -+ devt.button.type = devt.type; -+ devt.button.x = m_mouseX; -+ devt.button.y = m_mouseY; -+ devt.button.button = (levt.value<0) ? XBMC_BUTTON_WHEELDOWN:XBMC_BUTTON_WHEELUP; -+ -+ /* but WHEEL up enent to the queue */ -+ m_equeue.push_back(devt); -+ -+ /* prepare and return WHEEL down event */ -+ devt.button.state = XBMC_PRESSED; -+ devt.type = XBMC_MOUSEBUTTONDOWN; -+ } -+ else -+ { -+ return false; -+ } - - return true; - } -@@ -693,57 +720,65 @@ XBMC_Event CLinuxInputDevice::ReadEvent() - - XBMC_Event devt; - -- while (1) -+ if (m_equeue.empty()) - { -- bzero(&levt, sizeof(levt)); -+ while (1) -+ { -+ bzero(&levt, sizeof(levt)); - -- bzero(&devt, sizeof(devt)); -- devt.type = XBMC_NOEVENT; -+ bzero(&devt, sizeof(devt)); -+ devt.type = XBMC_NOEVENT; - -- if(m_devicePreferredId == LI_DEVICE_NONE) -- return devt; -+ if(m_devicePreferredId == LI_DEVICE_NONE) -+ return devt; - -- readlen = read(m_fd, &levt, sizeof(levt)); -+ readlen = read(m_fd, &levt, sizeof(levt)); - -- if (readlen <= 0) -- { -- if (errno == ENODEV) -+ if (readlen <= 0) - { -- CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName); -- m_bUnplugged = true; -+ if (errno == ENODEV) -+ { -+ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName); -+ m_bUnplugged = true; -+ } -+ -+ break; - } - -- break; -- } -+ //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str()); - -- //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str()); -+ // sanity check if we realy read the event -+ if(readlen != sizeof(levt)) -+ { -+ printf("CLinuxInputDevice: read error : %s\n", strerror(errno)); -+ break; -+ } - -- // sanity check if we realy read the event -- if(readlen != sizeof(levt)) -- { -- printf("CLinuxInputDevice: read error : %s\n", strerror(errno)); -- break; -- } -+ if (!TranslateEvent(levt, devt)) -+ continue; - -- if (!TranslateEvent(levt, devt)) -- continue; -+ /* Flush previous event with DIEF_FOLLOW? */ -+ if (devt.type != XBMC_NOEVENT) -+ { -+ //printf("new event! type = %d\n", devt.type); -+ //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode); - -- /* Flush previous event with DIEF_FOLLOW? */ -- if (devt.type != XBMC_NOEVENT) -- { -- //printf("new event! type = %d\n", devt.type); -- //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode); -+ if (m_hasLeds && (m_keyMods != m_lastKeyMods)) -+ { -+ SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM); -+ SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS); -+ m_lastKeyMods = m_keyMods; -+ } - -- if (m_hasLeds && (m_keyMods != m_lastKeyMods)) -- { -- SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM); -- SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS); -- m_lastKeyMods = m_keyMods; -+ break; - } -- -- break; - } - } -+ else -+ { -+ devt = m_equeue.front(); -+ m_equeue.pop_front(); -+ } - - return devt; - } -diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h -index cf1c5ce..954d823 100644 ---- a/xbmc/input/linux/LinuxInputDevices.h -+++ b/xbmc/input/linux/LinuxInputDevices.h -@@ -22,6 +22,7 @@ - - #include - #include -+#include - #include "windowing/XBMC_events.h" - #include "input/XBMC_keyboard.h" - #include "threads/SingleLock.h" -@@ -79,6 +80,7 @@ class CLinuxInputDevice - int m_deviceMaxAxis; - bool m_bSkipNonKeyEvents; - bool m_bUnplugged; -+ std::deque m_equeue; - }; - - class CLinuxInputDevices - From 73f943c955674662396b11be531b060e48e4c47f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 22:06:53 +0100 diff --git a/projects/RPi/patches/kodi/kodi-002-isengard-rpb-backports.patch b/projects/RPi/patches/kodi/kodi-002-isengard-rpb-backports.patch new file mode 100644 index 0000000000..15013fd768 --- /dev/null +++ b/projects/RPi/patches/kodi/kodi-002-isengard-rpb-backports.patch @@ -0,0 +1,29 @@ +From a68c7ca33ce0a3aa20caf3eb235e11d489e1fd5b Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 11 Oct 2015 20:55:35 +0100 +Subject: [PATCH] Revert "Revert "Disable extra logging by default"" + +This reverts commit a880554325be187b877cd8f0e2b338e7267da636. +--- + system/settings/settings.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/system/settings/settings.xml b/system/settings/settings.xml +index f1cbefa..b1b2ced 100644 +--- a/system/settings/settings.xml ++++ b/system/settings/settings.xml +@@ -2917,12 +2917,12 @@ + + + 1 +- true ++ false + + + + 1 +- 32768 ++ + + loggingcomponents + , diff --git a/projects/RPi2/filesystem/usr/lib/systemd/system/serial-console.service b/projects/RPi2/filesystem/usr/lib/systemd/system/serial-console.service index d70e3df75f..5dffa1a843 100644 --- a/projects/RPi2/filesystem/usr/lib/systemd/system/serial-console.service +++ b/projects/RPi2/filesystem/usr/lib/systemd/system/serial-console.service @@ -5,7 +5,8 @@ ConditionKernelCommandLine=console [Service] WorkingDirectory=/storage -ExecStart=/bin/sh -c '. /etc/profile; exec /bin/sh' +Environment="ENV=/etc/profile" +ExecStart=/bin/sh Restart=always RestartSec=0 StandardInput=tty diff --git a/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch b/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch index dbd11bc633..1031ed1b49 100644 --- a/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch +++ b/projects/RPi2/patches/kodi/kodi-001-isengard-rpb-backports.patch @@ -5720,217 +5720,6 @@ index f6c8df0..5c2b583 100644 #endif -From 958d47339a2427b66568fe7c2ea69831f111742a Mon Sep 17 00:00:00 2001 -From: Roman Kraevskiy -Date: Fri, 10 Jul 2015 23:36:34 +0300 -Subject: [PATCH 059/100] Mouse wheel support for X11-less linux distros - (openelec) - ---- - xbmc/input/linux/LinuxInputDevices.cpp | 125 +++++++++++++++++++++------------ - xbmc/input/linux/LinuxInputDevices.h | 2 + - 2 files changed, 82 insertions(+), 45 deletions(-) - -diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp -index 32a3b46..b028cd1 100644 ---- a/xbmc/input/linux/LinuxInputDevices.cpp -+++ b/xbmc/input/linux/LinuxInputDevices.cpp -@@ -558,22 +558,27 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev - */ - bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& devt) - { -+ bool motion = false; -+ bool wheel = false; -+ - switch (levt.code) - { - case REL_X: - m_mouseX += levt.value; - devt.motion.xrel = levt.value; - devt.motion.yrel = 0; -+ motion = true; - break; -- - case REL_Y: - m_mouseY += levt.value; - devt.motion.xrel = 0; - devt.motion.yrel = levt.value; -+ motion = true; - break; -- -- case REL_Z: - case REL_WHEEL: -+ wheel = (levt.value != 0); // process wheel event only when there was some delta -+ break; -+ case REL_Z: - default: - CLog::Log(LOGWARNING, "CLinuxInputDevice::RelEvent: Unknown rel event code: %d\n", levt.code); - return false; -@@ -588,13 +593,35 @@ bool CLinuxInputDevice::RelEvent(const struct input_event& levt, XBMC_Event& dev - m_mouseY = std::max(0, m_mouseY); - - -- devt.type = XBMC_MOUSEMOTION; -- devt.motion.type = XBMC_MOUSEMOTION; -- devt.motion.x = m_mouseX; -- devt.motion.y = m_mouseY; -- devt.motion.state = 0; -- devt.motion.which = m_deviceIndex; -- -+ if (motion) -+ { -+ devt.type = XBMC_MOUSEMOTION; -+ devt.motion.type = XBMC_MOUSEMOTION; -+ devt.motion.x = m_mouseX; -+ devt.motion.y = m_mouseY; -+ devt.motion.state = 0; -+ devt.motion.which = m_deviceIndex; -+ } -+ else if (wheel) -+ { -+ devt.type = XBMC_MOUSEBUTTONUP; -+ devt.button.state = XBMC_RELEASED; -+ devt.button.type = devt.type; -+ devt.button.x = m_mouseX; -+ devt.button.y = m_mouseY; -+ devt.button.button = (levt.value<0) ? XBMC_BUTTON_WHEELDOWN:XBMC_BUTTON_WHEELUP; -+ -+ /* but WHEEL up enent to the queue */ -+ m_equeue.push_back(devt); -+ -+ /* prepare and return WHEEL down event */ -+ devt.button.state = XBMC_PRESSED; -+ devt.type = XBMC_MOUSEBUTTONDOWN; -+ } -+ else -+ { -+ return false; -+ } - - return true; - } -@@ -693,57 +720,65 @@ XBMC_Event CLinuxInputDevice::ReadEvent() - - XBMC_Event devt; - -- while (1) -+ if (m_equeue.empty()) - { -- bzero(&levt, sizeof(levt)); -+ while (1) -+ { -+ bzero(&levt, sizeof(levt)); - -- bzero(&devt, sizeof(devt)); -- devt.type = XBMC_NOEVENT; -+ bzero(&devt, sizeof(devt)); -+ devt.type = XBMC_NOEVENT; - -- if(m_devicePreferredId == LI_DEVICE_NONE) -- return devt; -+ if(m_devicePreferredId == LI_DEVICE_NONE) -+ return devt; - -- readlen = read(m_fd, &levt, sizeof(levt)); -+ readlen = read(m_fd, &levt, sizeof(levt)); - -- if (readlen <= 0) -- { -- if (errno == ENODEV) -+ if (readlen <= 0) - { -- CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName); -- m_bUnplugged = true; -+ if (errno == ENODEV) -+ { -+ CLog::Log(LOGINFO,"input device was unplugged %s",m_deviceName); -+ m_bUnplugged = true; -+ } -+ -+ break; - } - -- break; -- } -+ //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str()); - -- //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str()); -+ // sanity check if we realy read the event -+ if(readlen != sizeof(levt)) -+ { -+ printf("CLinuxInputDevice: read error : %s\n", strerror(errno)); -+ break; -+ } - -- // sanity check if we realy read the event -- if(readlen != sizeof(levt)) -- { -- printf("CLinuxInputDevice: read error : %s\n", strerror(errno)); -- break; -- } -+ if (!TranslateEvent(levt, devt)) -+ continue; - -- if (!TranslateEvent(levt, devt)) -- continue; -+ /* Flush previous event with DIEF_FOLLOW? */ -+ if (devt.type != XBMC_NOEVENT) -+ { -+ //printf("new event! type = %d\n", devt.type); -+ //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode); - -- /* Flush previous event with DIEF_FOLLOW? */ -- if (devt.type != XBMC_NOEVENT) -- { -- //printf("new event! type = %d\n", devt.type); -- //printf("key: %d %d %d %c\n", devt.key.keysym.scancode, devt.key.keysym.sym, devt.key.keysym.mod, devt.key.keysym.unicode); -+ if (m_hasLeds && (m_keyMods != m_lastKeyMods)) -+ { -+ SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM); -+ SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS); -+ m_lastKeyMods = m_keyMods; -+ } - -- if (m_hasLeds && (m_keyMods != m_lastKeyMods)) -- { -- SetLed(LED_NUML, m_keyMods & XBMCKMOD_NUM); -- SetLed(LED_CAPSL, m_keyMods & XBMCKMOD_CAPS); -- m_lastKeyMods = m_keyMods; -+ break; - } -- -- break; - } - } -+ else -+ { -+ devt = m_equeue.front(); -+ m_equeue.pop_front(); -+ } - - return devt; - } -diff --git a/xbmc/input/linux/LinuxInputDevices.h b/xbmc/input/linux/LinuxInputDevices.h -index cf1c5ce..954d823 100644 ---- a/xbmc/input/linux/LinuxInputDevices.h -+++ b/xbmc/input/linux/LinuxInputDevices.h -@@ -22,6 +22,7 @@ - - #include - #include -+#include - #include "windowing/XBMC_events.h" - #include "input/XBMC_keyboard.h" - #include "threads/SingleLock.h" -@@ -79,6 +80,7 @@ class CLinuxInputDevice - int m_deviceMaxAxis; - bool m_bSkipNonKeyEvents; - bool m_bUnplugged; -+ std::deque m_equeue; - }; - - class CLinuxInputDevices - From 73f943c955674662396b11be531b060e48e4c47f Mon Sep 17 00:00:00 2001 From: popcornmix Date: Mon, 22 Jun 2015 22:06:53 +0100 diff --git a/projects/RPi2/patches/kodi/kodi-002-isengard-rpb-backports.patch b/projects/RPi2/patches/kodi/kodi-002-isengard-rpb-backports.patch new file mode 100644 index 0000000000..15013fd768 --- /dev/null +++ b/projects/RPi2/patches/kodi/kodi-002-isengard-rpb-backports.patch @@ -0,0 +1,29 @@ +From a68c7ca33ce0a3aa20caf3eb235e11d489e1fd5b Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Sun, 11 Oct 2015 20:55:35 +0100 +Subject: [PATCH] Revert "Revert "Disable extra logging by default"" + +This reverts commit a880554325be187b877cd8f0e2b338e7267da636. +--- + system/settings/settings.xml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/system/settings/settings.xml b/system/settings/settings.xml +index f1cbefa..b1b2ced 100644 +--- a/system/settings/settings.xml ++++ b/system/settings/settings.xml +@@ -2917,12 +2917,12 @@ + + + 1 +- true ++ false + + + + 1 +- 32768 ++ + + loggingcomponents + ,