diff --git a/packages/mediacenter/platform/package.mk b/packages/mediacenter/platform/package.mk new file mode 100644 index 0000000000..2f10fb6be1 --- /dev/null +++ b/packages/mediacenter/platform/package.mk @@ -0,0 +1,48 @@ +################################################################################ +# 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 . +################################################################################ + +PKG_NAME="platform" +PKG_VERSION="1.0.6" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.kodi.tv" +PKG_URL="http://mirrors.xbmc.org/build-deps/sources/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="multimedia" +PKG_SHORTDESC="platform:" +PKG_LONGDESC="platform:" + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +configure_target() { + cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib \ + -DCMAKE_INSTALL_LIBDIR_NOARCH=/usr/lib \ + -DCMAKE_INSTALL_PREFIX_TOOLCHAIN=$SYSROOT_PREFIX/usr \ + -DCMAKE_PREFIX_PATH=$SYSROOT_PREFIX/usr \ + -DBUILD_SHARED_LIBS=0 \ + .. +} + +post_makeinstall_target() { + rm -rf $INSTALL/usr +} diff --git a/packages/mediacenter/platform/patches/platform-01-revert-cc-badness.patch b/packages/mediacenter/platform/patches/platform-01-revert-cc-badness.patch new file mode 100644 index 0000000000..3e7e5ebcc7 --- /dev/null +++ b/packages/mediacenter/platform/patches/platform-01-revert-cc-badness.patch @@ -0,0 +1,30 @@ +From f91594676d1f75530addd87363ccbc6510efb84e Mon Sep 17 00:00:00 2001 +From: Stefan Saraev +Date: Fri, 8 May 2015 11:19:42 +0300 +Subject: [PATCH] revert cc badness + +this reverts upstream commit 68f8418 +--- + CMakeLists.txt | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73fae2e..dc3e1b5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -22,12 +22,6 @@ if(WIN32) + src/windows/os-threads.cpp) + endif() + +-set(platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/platform") +-IF(WIN32) +- LIST(APPEND platform_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include/platform/windows") +-ENDIF(WIN32) +-set(platform_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) +- + if(NOT ${CORE_SYSTEM_NAME} STREQUAL "") + if(${CORE_SYSTEM_NAME} STREQUAL "darwin" OR ${CORE_SYSTEM_NAME} STREQUAL "ios") + list(APPEND platform_LIBRARIES "-framework CoreVideo -framework IOKit") +-- +1.7.10.4 + diff --git a/packages/mediacenter/platform/patches/platform-02-add-PR6.patch b/packages/mediacenter/platform/patches/platform-02-add-PR6.patch new file mode 100644 index 0000000000..9a09e3931c --- /dev/null +++ b/packages/mediacenter/platform/patches/platform-02-add-PR6.patch @@ -0,0 +1,199 @@ +From 8ff719d94b664378f3ebb61166454eef7cb20c25 Mon Sep 17 00:00:00 2001 +From: Stephan Raue +Date: Sat, 9 May 2015 17:13:25 +0200 +Subject: [PATCH] readd sockets/cdevsocket.h, needed by IMX6 and TDA995x + +--- + CMakeLists.txt | 3 +- + src/posix/os-socket.h | 16 +++++++ + src/posix/os-types.h | 2 + + src/sockets/cdevsocket.h | 117 +++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 137 insertions(+), 1 deletion(-) + create mode 100644 src/sockets/cdevsocket.h + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8164286..9f577b3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -56,7 +56,8 @@ ELSE(WIN32) + src/posix/os-types.h + DESTINATION include/platform/posix) + ENDIF(WIN32) +-install(FILES src/sockets/socket.h ++install(FILES src/sockets/cdevsocket.h ++ src/sockets/socket.h + src/sockets/tcp.h + DESTINATION include/platform/sockets) + install(FILES src/threads/atomics.h +diff --git a/src/posix/os-socket.h b/src/posix/os-socket.h +index 60c8507..05888c2 100644 +--- a/src/posix/os-socket.h ++++ b/src/posix/os-socket.h +@@ -36,6 +36,7 @@ + #include "../util/timeutils.h" + #include + #include ++#include + #include + #include + #include +@@ -164,8 +165,23 @@ namespace PLATFORM + + return iBytesRead; + } ++ ++ inline int SocketIoctl(socket_t socket, int *iError, int request, void* data) ++ { ++ if (socket == INVALID_SOCKET_VALUE) ++ { ++ *iError = EINVAL; ++ return -1; ++ } ++ ++ int iReturn = ioctl(socket, request, data); ++ if (iReturn < 0) ++ *iError = errno; ++ return iReturn; ++ } + //@} + ++ + // TCP + //@{ + inline void TcpSocketClose(tcp_socket_t socket) +diff --git a/src/posix/os-types.h b/src/posix/os-types.h +index 6134080..b48f330 100644 +--- a/src/posix/os-types.h ++++ b/src/posix/os-types.h +@@ -61,6 +61,8 @@ typedef socket_t tcp_socket_t; + #define INVALID_SOCKET_VALUE (-1) + typedef socket_t serial_socket_t; + #define INVALID_SERIAL_SOCKET_VALUE (-1) ++typedef socket_t chardev_socket_t; ++#define INVALID_CHARDEV_SOCKET_VALUE (-1) + + typedef long LONG; + #if !defined(__APPLE__) +diff --git a/src/sockets/cdevsocket.h b/src/sockets/cdevsocket.h +new file mode 100644 +index 0000000..a5ac338 +--- /dev/null ++++ b/src/sockets/cdevsocket.h +@@ -0,0 +1,117 @@ ++#pragma once ++/* ++ * This file is part of the libCEC(R) library. ++ * ++ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. ++ * libCEC(R) is an original work, containing original code. ++ * ++ * libCEC(R) is a trademark of Pulse-Eight Limited. ++ * ++ * This program is dual-licensed; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * ++ * Alternatively, you can license this library under a commercial license, ++ * please contact Pulse-Eight Licensing for more information. ++ * ++ * For more information contact: ++ * Pulse-Eight Licensing ++ * http://www.pulse-eight.com/ ++ * http://www.pulse-eight.net/ ++ */ ++ ++#include "../os.h" ++#include "../util/buffer.h" ++ ++#include ++#include ++ ++#if !defined(__WINDOWS__) ++#include ++#endif ++ ++#include "socket.h" ++ ++namespace PLATFORM ++{ ++ class CCDevSocket : public CCommonSocket ++ { ++ public: ++ CCDevSocket(const std::string &strName ) : ++ CCommonSocket(INVALID_CHARDEV_SOCKET_VALUE, strName) ++ #ifdef __WINDOWS__ ++ ,m_iCurrentReadTimeout(MAXDWORD) ++ #endif ++ {} ++ ++ virtual ~CCDevSocket(void) ++ { ++ Close(); ++ } ++ ++ virtual bool Open(uint64_t iTimeoutMs = 0) ++ { ++ (void)iTimeoutMs; ++ ++ if (IsOpen()) ++ return false; ++ ++ m_socket = open(m_strName.c_str(), O_RDWR ); ++ ++ if (m_socket == INVALID_CHARDEV_SOCKET_VALUE) ++ { ++ m_strError = strerror(errno); ++ return false; ++ } ++ ++ return true; ++ } ++ ++ virtual void Close(void) ++ { ++ if (IsOpen()) ++ { ++ SocketClose(m_socket); ++ m_socket = INVALID_CHARDEV_SOCKET_VALUE; ++ } ++ } ++ ++ virtual void Shutdown(void) ++ { ++ SocketClose(m_socket); ++ } ++ ++ virtual int Ioctl(int request, void* data) ++ { ++ return IsOpen() ? SocketIoctl(m_socket, &m_iError, request, data) : -1; ++ } ++ ++ virtual ssize_t Write(void* data, size_t len) ++ { ++ return IsOpen() ? SocketWrite(m_socket, &m_iError, data, len) : -1; ++ } ++ ++ virtual ssize_t Read(void* data, size_t len, uint64_t iTimeoutMs = 0) ++ { ++ return IsOpen() ? SocketRead(m_socket, &m_iError, data, len, iTimeoutMs) : -1; ++ } ++ ++ virtual bool IsOpen(void) ++ { ++ return m_socket != INVALID_CHARDEV_SOCKET_VALUE; ++ } ++ }; ++ ++}; ++